aboutsummaryrefslogtreecommitdiffstats
path: root/unmodified_drivers
diff options
context:
space:
mode:
authorOlaf Hering <olaf@aepfle.de>2013-09-20 11:41:08 +0200
committerJan Beulich <jbeulich@suse.com>2013-09-20 11:41:08 +0200
commitdf17e9c889c48c9c10aa3f9dd0bb11077f54efc4 (patch)
tree8af3b5600c6d96809fca8b7667df209d6ca5c83a /unmodified_drivers
parent5ae3285f247e04db6145fc658e5ea2c2cb2df7c6 (diff)
downloadxen-df17e9c889c48c9c10aa3f9dd0bb11077f54efc4.tar.gz
xen-df17e9c889c48c9c10aa3f9dd0bb11077f54efc4.tar.bz2
xen-df17e9c889c48c9c10aa3f9dd0bb11077f54efc4.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>
Diffstat (limited to 'unmodified_drivers')
-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);