aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorOlaf Hering <olaf@aepfle.de>2013-09-23 16:28:52 +0200
committerJan Beulich <jbeulich@suse.com>2013-09-23 16:28:52 +0200
commitd4d9332a1c3fbd3f1802ffb24a95429cfc1512ed (patch)
treefbeb39b82f3ed8b0e6fbed756a8a2f8bca5f0ed8
parentfa456b1e9909b59d3bcd55653c9a47ec5da82b9e (diff)
downloadxen-d4d9332a1c3fbd3f1802ffb24a95429cfc1512ed.tar.gz
xen-d4d9332a1c3fbd3f1802ffb24a95429cfc1512ed.tar.bz2
xen-d4d9332a1c3fbd3f1802ffb24a95429cfc1512ed.zip
unmodified_drivers: enable unplug per default
Since xen-3.3 an official unplug protocol for emulated hardware is available in the toolstack. The pvops kernel does the unplug per default, so it is safe to do it also in the drivers for forward ported xenlinux. Currently its required to load xen-platform-pci with the module parameter dev_unplug=all, which is cumbersome. Also recognize the dev_unplug=never parameter, which provides the default before this patch. Signed-off-by: Olaf Hering <olaf@aepfle.de> master commit: df17e9c889c48c9c10aa3f9dd0bb11077f54efc4 master date: 2013-09-20 11:41:08 +0200
-rw-r--r--unmodified_drivers/linux-2.6/platform-pci/platform-pci.c8
1 files changed, 7 insertions, 1 deletions
diff --git a/unmodified_drivers/linux-2.6/platform-pci/platform-pci.c b/unmodified_drivers/linux-2.6/platform-pci/platform-pci.c
index cfd05363ff..163b1688cd 100644
--- a/unmodified_drivers/linux-2.6/platform-pci/platform-pci.c
+++ b/unmodified_drivers/linux-2.6/platform-pci/platform-pci.c
@@ -66,7 +66,7 @@ MODULE_LICENSE("GPL");
static char *dev_unplug;
module_param(dev_unplug, charp, 0644);
MODULE_PARM_DESC(dev_unplug, "Emulated devices to unplug: "
- "[all,][ide-disks,][aux-ide-disks,][nics]\n");
+ "[all,][ide-disks,][aux-ide-disks,][nics,][never] (default is 'all')\n");
struct pci_dev *xen_platform_pdev;
@@ -290,6 +290,10 @@ static int check_platform_magic(struct device *dev, long ioaddr, long iolen)
short magic, unplug = 0;
char protocol, *p, *q, *err;
+ /* Unconditionally unplug everything */
+ if (!dev_unplug)
+ unplug = UNPLUG_ALL;
+
for (p = dev_unplug; p; p = q) {
q = strchr(dev_unplug, ',');
if (q)
@@ -302,6 +306,8 @@ static int check_platform_magic(struct device *dev, long ioaddr, long iolen)
unplug |= UNPLUG_AUX_IDE_DISKS;
else if (!strcmp(p, "nics"))
unplug |= UNPLUG_ALL_NICS;
+ else if (!strcmp(p, "never"))
+ unplug = 0;
else
dev_warn(dev, "unrecognised option '%s' "
"in module parameter 'dev_unplug'\n", p);