[kernel] r17845 - in dists/trunk/linux-2.6/debian: . patches/features/all/xen patches/series
Bastian Blank
waldi at alioth.debian.org
Fri Jul 22 19:45:20 UTC 2011
Author: waldi
Date: Fri Jul 22 19:45:19 2011
New Revision: 17845
Log:
* debian/changelog: Update.
* debian/patches/features/all/xen/backend-autoload.patch:
Allow autoloading of Xen backend drivers.
* debian/patches/series/base: Add new patch.
Added:
dists/trunk/linux-2.6/debian/patches/features/all/xen/backend-autoload.patch
Modified:
dists/trunk/linux-2.6/debian/changelog
dists/trunk/linux-2.6/debian/patches/series/base
Modified: dists/trunk/linux-2.6/debian/changelog
==============================================================================
--- dists/trunk/linux-2.6/debian/changelog Fri Jul 22 18:51:32 2011 (r17844)
+++ dists/trunk/linux-2.6/debian/changelog Fri Jul 22 19:45:19 2011 (r17845)
@@ -28,6 +28,9 @@
Enable FUSION, FUSION_SAS, HW_RANDOM, HW_RANDOM_OCTEON,
OCTEON_MGMT_ETHERNET, CONFIG_OCTEON_ETHERNET.
+ [ Bastian Blank ]
+ * [xen] Allow autoloading of backend drivers.
+
-- maximilian attems <maks at debian.org> Tue, 05 Jul 2011 14:25:29 +0200
linux-2.6 (3.0.0~rc6-1~experimental.1) experimental; urgency=low
Added: dists/trunk/linux-2.6/debian/patches/features/all/xen/backend-autoload.patch
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ dists/trunk/linux-2.6/debian/patches/features/all/xen/backend-autoload.patch Fri Jul 22 19:45:19 2011 (r17845)
@@ -0,0 +1,162 @@
+diff --git a/drivers/block/xen-blkback/blkback.c b/drivers/block/xen-blkback/blkback.c
+index 5cf2993..ed62008 100644
+--- a/drivers/block/xen-blkback/blkback.c
++++ b/drivers/block/xen-blkback/blkback.c
+@@ -824,3 +824,4 @@ static int __init xen_blkif_init(void)
+ module_init(xen_blkif_init);
+
+ MODULE_LICENSE("Dual BSD/GPL");
++MODULE_ALIAS("xen-backend:vbd");
+diff --git a/drivers/net/xen-netback/netback.c b/drivers/net/xen-netback/netback.c
+index 0e4851b..fd00f25 100644
+--- a/drivers/net/xen-netback/netback.c
++++ b/drivers/net/xen-netback/netback.c
+@@ -1743,3 +1743,4 @@ failed_init:
+ module_init(netback_init);
+
+ MODULE_LICENSE("Dual BSD/GPL");
++MODULE_ALIAS("xen-backend:vif");
+diff --git a/drivers/xen/xenbus/xenbus_probe.c b/drivers/xen/xenbus/xenbus_probe.c
+index 7397695..bd2f90c 100644
+--- a/drivers/xen/xenbus/xenbus_probe.c
++++ b/drivers/xen/xenbus/xenbus_probe.c
+@@ -378,26 +378,32 @@ static void xenbus_dev_release(struct device *dev)
+ kfree(to_xenbus_device(dev));
+ }
+
+-static ssize_t xendev_show_nodename(struct device *dev,
+- struct device_attribute *attr, char *buf)
++static ssize_t nodename_show(struct device *dev,
++ struct device_attribute *attr, char *buf)
+ {
+ return sprintf(buf, "%s\n", to_xenbus_device(dev)->nodename);
+ }
+-static DEVICE_ATTR(nodename, S_IRUSR | S_IRGRP | S_IROTH, xendev_show_nodename, NULL);
+
+-static ssize_t xendev_show_devtype(struct device *dev,
+- struct device_attribute *attr, char *buf)
++static ssize_t devtype_show(struct device *dev,
++ struct device_attribute *attr, char *buf)
+ {
+ return sprintf(buf, "%s\n", to_xenbus_device(dev)->devicetype);
+ }
+-static DEVICE_ATTR(devtype, S_IRUSR | S_IRGRP | S_IROTH, xendev_show_devtype, NULL);
+
+-static ssize_t xendev_show_modalias(struct device *dev,
+- struct device_attribute *attr, char *buf)
++static ssize_t modalias_show(struct device *dev,
++ struct device_attribute *attr, char *buf)
+ {
+- return sprintf(buf, "xen:%s\n", to_xenbus_device(dev)->devicetype);
++ return sprintf(buf, "%s:%s\n", dev->bus->name,
++ to_xenbus_device(dev)->devicetype);
+ }
+-static DEVICE_ATTR(modalias, S_IRUSR | S_IRGRP | S_IROTH, xendev_show_modalias, NULL);
++
++struct device_attribute xenbus_dev_attrs[] = {
++ __ATTR_RO(nodename),
++ __ATTR_RO(devtype),
++ __ATTR_RO(modalias),
++ __ATTR_NULL
++};
++EXPORT_SYMBOL_GPL(xenbus_dev_attrs);
+
+ int xenbus_probe_node(struct xen_bus_type *bus,
+ const char *type,
+@@ -449,25 +455,7 @@ int xenbus_probe_node(struct xen_bus_type *bus,
+ if (err)
+ goto fail;
+
+- err = device_create_file(&xendev->dev, &dev_attr_nodename);
+- if (err)
+- goto fail_unregister;
+-
+- err = device_create_file(&xendev->dev, &dev_attr_devtype);
+- if (err)
+- goto fail_remove_nodename;
+-
+- err = device_create_file(&xendev->dev, &dev_attr_modalias);
+- if (err)
+- goto fail_remove_devtype;
+-
+ return 0;
+-fail_remove_devtype:
+- device_remove_file(&xendev->dev, &dev_attr_devtype);
+-fail_remove_nodename:
+- device_remove_file(&xendev->dev, &dev_attr_nodename);
+-fail_unregister:
+- device_unregister(&xendev->dev);
+ fail:
+ kfree(xendev);
+ return err;
+diff --git a/drivers/xen/xenbus/xenbus_probe.h b/drivers/xen/xenbus/xenbus_probe.h
+index 888b990..b814935 100644
+--- a/drivers/xen/xenbus/xenbus_probe.h
++++ b/drivers/xen/xenbus/xenbus_probe.h
+@@ -48,6 +48,8 @@ struct xen_bus_type
+ struct bus_type bus;
+ };
+
++extern struct device_attribute xenbus_dev_attrs[];
++
+ extern int xenbus_match(struct device *_dev, struct device_driver *_drv);
+ extern int xenbus_dev_probe(struct device *_dev);
+ extern int xenbus_dev_remove(struct device *_dev);
+diff --git a/drivers/xen/xenbus/xenbus_probe_backend.c b/drivers/xen/xenbus/xenbus_probe_backend.c
+index 6cf467b..60adf91 100644
+--- a/drivers/xen/xenbus/xenbus_probe_backend.c
++++ b/drivers/xen/xenbus/xenbus_probe_backend.c
+@@ -107,6 +107,9 @@ static int xenbus_uevent_backend(struct device *dev,
+ if (xdev == NULL)
+ return -ENODEV;
+
++ if (add_uevent_var(env, "MODALIAS=xen-backend:%s", xdev->devicetype))
++ return -ENOMEM;
++
+ /* stuff we want to pass to /sbin/hotplug */
+ if (add_uevent_var(env, "XENBUS_TYPE=%s", xdev->devicetype))
+ return -ENOMEM;
+@@ -183,10 +186,6 @@ static void frontend_changed(struct xenbus_watch *watch,
+ xenbus_otherend_changed(watch, vec, len, 0);
+ }
+
+-static struct device_attribute xenbus_backend_dev_attrs[] = {
+- __ATTR_NULL
+-};
+-
+ static struct xen_bus_type xenbus_backend = {
+ .root = "backend",
+ .levels = 3, /* backend/type/<frontend>/<id> */
+@@ -200,7 +199,7 @@ static struct xen_bus_type xenbus_backend = {
+ .probe = xenbus_dev_probe,
+ .remove = xenbus_dev_remove,
+ .shutdown = xenbus_dev_shutdown,
+- .dev_attrs = xenbus_backend_dev_attrs,
++ .dev_attrs = xenbus_dev_attrs,
+ },
+ };
+
+diff --git a/drivers/xen/xenbus/xenbus_probe_frontend.c b/drivers/xen/xenbus/xenbus_probe_frontend.c
+index b6a2690..ed2ba47 100644
+--- a/drivers/xen/xenbus/xenbus_probe_frontend.c
++++ b/drivers/xen/xenbus/xenbus_probe_frontend.c
+@@ -81,10 +81,6 @@ static void backend_changed(struct xenbus_watch *watch,
+ xenbus_otherend_changed(watch, vec, len, 1);
+ }
+
+-static struct device_attribute xenbus_frontend_dev_attrs[] = {
+- __ATTR_NULL
+-};
+-
+ static const struct dev_pm_ops xenbus_pm_ops = {
+ .suspend = xenbus_dev_suspend,
+ .resume = xenbus_dev_resume,
+@@ -106,7 +102,7 @@ static struct xen_bus_type xenbus_frontend = {
+ .probe = xenbus_dev_probe,
+ .remove = xenbus_dev_remove,
+ .shutdown = xenbus_dev_shutdown,
+- .dev_attrs = xenbus_frontend_dev_attrs,
++ .dev_attrs = xenbus_dev_attrs,
+
+ .pm = &xenbus_pm_ops,
+ },
Modified: dists/trunk/linux-2.6/debian/patches/series/base
==============================================================================
--- dists/trunk/linux-2.6/debian/patches/series/base Fri Jul 22 18:51:32 2011 (r17844)
+++ dists/trunk/linux-2.6/debian/patches/series/base Fri Jul 22 19:45:19 2011 (r17845)
@@ -47,3 +47,4 @@
+ bugfix/all/ALSA-hda-Handle-1-as-invalid-position-too.patch
+ bugfix/all/ALSA-hda-Judge-playback-stream-from-stream-id-in-azx.patch
+ bugfix/all/ALSA-hda-Enable-auto-parser-as-default-for-Conexant-.patch
++ features/all/xen/backend-autoload.patch
More information about the Kernel-svn-changes
mailing list