]> xenbits.xensource.com Git - xen.git/commitdiff
unmodified_drivers: enable unplug per default
authorOlaf Hering <olaf@aepfle.de>
Mon, 23 Sep 2013 14:28:52 +0000 (16:28 +0200)
committerJan Beulich <jbeulich@suse.com>
Mon, 23 Sep 2013 14:28:52 +0000 (16:28 +0200)
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

unmodified_drivers/linux-2.6/platform-pci/platform-pci.c

index cfd05363ff83cf78a6b46d79700567e681ed248e..163b1688cd9fbdac419dbb4b178401cbfc4698a8 100644 (file)
@@ -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);