WARNING - OLD ARCHIVES

This is an archived copy of the Xen.org mailing list, which we have preserved to ensure that existing links to archives are not broken. The live archive, which contains the latest emails, can be found at http://lists.xen.org/
   
 
 
Xen 
 
Home Products Support Community News
 
   
 

xen-changelog

[Xen-changelog] [linux-2.6.18-xen] Xen frontend driver module autoloadin

To: xen-changelog@xxxxxxxxxxxxxxxxxxx
Subject: [Xen-changelog] [linux-2.6.18-xen] Xen frontend driver module autoloading.
From: "Xen patchbot-linux-2.6.18-xen" <patchbot-linux-2.6.18-xen@xxxxxxxxxxxxxxxxxxx>
Date: Fri, 27 Jul 2007 02:33:54 -0700
Delivery-date: Fri, 27 Jul 2007 02:31:57 -0700
Envelope-to: www-data@xxxxxxxxxxxxxxxxxx
List-help: <mailto:xen-changelog-request@lists.xensource.com?subject=help>
List-id: BK change log <xen-changelog.lists.xensource.com>
List-post: <mailto:xen-changelog@lists.xensource.com>
List-subscribe: <http://lists.xensource.com/cgi-bin/mailman/listinfo/xen-changelog>, <mailto:xen-changelog-request@lists.xensource.com?subject=subscribe>
List-unsubscribe: <http://lists.xensource.com/cgi-bin/mailman/listinfo/xen-changelog>, <mailto:xen-changelog-request@lists.xensource.com?subject=unsubscribe>
Reply-to: xen-devel@xxxxxxxxxxxxxxxxxxx
Sender: xen-changelog-bounces@xxxxxxxxxxxxxxxxxxx
# HG changeset patch
# User kfraser@xxxxxxxxxxxxxxxxxxxxx
# Date 1184678500 -3600
# Node ID 5e294e29a43ee8a608d454353ee19b83f72d4757
# Parent  3ce2b9fc4900103af7b4f180ff6622b480d55c84
Xen frontend driver module autoloading.

Implements module autoloading for the xen frontend drivers by adding a
uevent function for the frontend xenbus and some module aliases to the
individual drivers.

From: Gerd Hoffmann <kraxel@xxxxxxxxxx>
Signed-off-by: Keir Fraser <keir@xxxxxxxxxxxxx>
---
 drivers/xen/blkfront/blkfront.c   |    2 +-
 drivers/xen/fbfront/xenfb.c       |    1 +
 drivers/xen/fbfront/xenkbd.c      |    1 +
 drivers/xen/netfront/netfront.c   |    1 +
 drivers/xen/pcifront/xenbus.c     |    1 +
 drivers/xen/xenbus/xenbus_probe.c |   25 +++++++++++++++++++++++++
 6 files changed, 30 insertions(+), 1 deletion(-)

diff -r 3ce2b9fc4900 -r 5e294e29a43e drivers/xen/blkfront/blkfront.c
--- a/drivers/xen/blkfront/blkfront.c   Tue Jul 17 10:19:48 2007 +0100
+++ b/drivers/xen/blkfront/blkfront.c   Tue Jul 17 14:21:40 2007 +0100
@@ -879,7 +879,7 @@ static struct xenbus_device_id blkfront_
        { "vbd" },
        { "" }
 };
-
+MODULE_ALIAS("xen:vbd");
 
 static struct xenbus_driver blkfront = {
        .name = "vbd",
diff -r 3ce2b9fc4900 -r 5e294e29a43e drivers/xen/fbfront/xenfb.c
--- a/drivers/xen/fbfront/xenfb.c       Tue Jul 17 10:19:48 2007 +0100
+++ b/drivers/xen/fbfront/xenfb.c       Tue Jul 17 14:21:40 2007 +0100
@@ -718,6 +718,7 @@ static struct xenbus_device_id xenfb_ids
        { "vfb" },
        { "" }
 };
+MODULE_ALIAS("xen:vfb");
 
 static struct xenbus_driver xenfb = {
        .name = "vfb",
diff -r 3ce2b9fc4900 -r 5e294e29a43e drivers/xen/fbfront/xenkbd.c
--- a/drivers/xen/fbfront/xenkbd.c      Tue Jul 17 10:19:48 2007 +0100
+++ b/drivers/xen/fbfront/xenkbd.c      Tue Jul 17 14:21:40 2007 +0100
@@ -299,6 +299,7 @@ static struct xenbus_device_id xenkbd_id
        { "vkbd" },
        { "" }
 };
+MODULE_ALIAS("xen:vkbd");
 
 static struct xenbus_driver xenkbd = {
        .name = "vkbd",
diff -r 3ce2b9fc4900 -r 5e294e29a43e drivers/xen/netfront/netfront.c
--- a/drivers/xen/netfront/netfront.c   Tue Jul 17 10:19:48 2007 +0100
+++ b/drivers/xen/netfront/netfront.c   Tue Jul 17 14:21:40 2007 +0100
@@ -2151,6 +2151,7 @@ static struct xenbus_device_id netfront_
        { "vif" },
        { "" }
 };
+MODULE_ALIAS("xen:vif");
 
 
 static struct xenbus_driver netfront = {
diff -r 3ce2b9fc4900 -r 5e294e29a43e drivers/xen/pcifront/xenbus.c
--- a/drivers/xen/pcifront/xenbus.c     Tue Jul 17 10:19:48 2007 +0100
+++ b/drivers/xen/pcifront/xenbus.c     Tue Jul 17 14:21:40 2007 +0100
@@ -273,6 +273,7 @@ static struct xenbus_device_id xenpci_id
        {"pci"},
        {{0}},
 };
+MODULE_ALIAS("xen:pci");
 
 static struct xenbus_driver xenbus_pcifront_driver = {
        .name                   = "pcifront",
diff -r 3ce2b9fc4900 -r 5e294e29a43e drivers/xen/xenbus/xenbus_probe.c
--- a/drivers/xen/xenbus/xenbus_probe.c Tue Jul 17 10:19:48 2007 +0100
+++ b/drivers/xen/xenbus/xenbus_probe.c Tue Jul 17 14:21:40 2007 +0100
@@ -165,6 +165,30 @@ static int read_backend_details(struct x
        return read_otherend_details(xendev, "backend-id", "backend");
 }
 
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,16)
+static int xenbus_uevent_frontend(struct device *dev, char **envp,
+                                 int num_envp, char *buffer, int buffer_size)
+{
+       struct xenbus_device *xdev;
+       int length = 0, i = 0;
+
+       if (dev == NULL)
+               return -ENODEV;
+       xdev = to_xenbus_device(dev);
+       if (xdev == NULL)
+               return -ENODEV;
+
+       /* stuff we want to pass to /sbin/hotplug */
+       add_uevent_var(envp, num_envp, &i, buffer, buffer_size, &length,
+                      "XENBUS_TYPE=%s", xdev->devicetype);
+       add_uevent_var(envp, num_envp, &i, buffer, buffer_size, &length,
+                      "XENBUS_PATH=%s", xdev->nodename);
+       add_uevent_var(envp, num_envp, &i, buffer, buffer_size, &length,
+                      "MODALIAS=xen:%s", xdev->devicetype);
+
+       return 0;
+}
+#endif
 
 /* Bus type for frontend drivers. */
 static struct xen_bus_type xenbus_frontend = {
@@ -180,6 +204,7 @@ static struct xen_bus_type xenbus_fronte
                .probe    = xenbus_dev_probe,
                .remove   = xenbus_dev_remove,
                .shutdown = xenbus_dev_shutdown,
+               .uevent   = xenbus_uevent_frontend,
 #endif
        },
        .dev = {

_______________________________________________
Xen-changelog mailing list
Xen-changelog@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-changelog

<Prev in Thread] Current Thread [Next in Thread>
  • [Xen-changelog] [linux-2.6.18-xen] Xen frontend driver module autoloading., Xen patchbot-linux-2.6.18-xen <=