[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