[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Xen-changelog] [linux-2.6.18-xen] Xen frontend driver module autoloading.
# 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
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |