diff options
Diffstat (limited to 'arch/x86/xen/platform-pci-unplug.c')
| -rw-r--r-- | arch/x86/xen/platform-pci-unplug.c | 18 | 
1 files changed, 12 insertions, 6 deletions
| diff --git a/arch/x86/xen/platform-pci-unplug.c b/arch/x86/xen/platform-pci-unplug.c index 554c002a1e1..0f456386cce 100644 --- a/arch/x86/xen/platform-pci-unplug.c +++ b/arch/x86/xen/platform-pci-unplug.c @@ -72,13 +72,17 @@ void __init xen_unplug_emulated_devices(void)  {  	int r; +	/* user explicitly requested no unplug */ +	if (xen_emul_unplug & XEN_UNPLUG_NEVER) +		return;  	/* check the version of the xen platform PCI device */  	r = check_platform_magic();  	/* If the version matches enable the Xen platform PCI driver. -	 * Also enable the Xen platform PCI driver if the version is really old -	 * and the user told us to ignore it. */ +	 * Also enable the Xen platform PCI driver if the host does +	 * not support the unplug protocol (XEN_PLATFORM_ERR_MAGIC) +	 * but the user told us that unplugging is unnecessary. */  	if (r && !(r == XEN_PLATFORM_ERR_MAGIC && -			(xen_emul_unplug & XEN_UNPLUG_IGNORE))) +			(xen_emul_unplug & XEN_UNPLUG_UNNECESSARY)))  		return;  	/* Set the default value of xen_emul_unplug depending on whether or  	 * not the Xen PV frontends and the Xen platform PCI driver have @@ -99,7 +103,7 @@ void __init xen_unplug_emulated_devices(void)  		}  	}  	/* Now unplug the emulated devices */ -	if (!(xen_emul_unplug & XEN_UNPLUG_IGNORE)) +	if (!(xen_emul_unplug & XEN_UNPLUG_UNNECESSARY))  		outw(xen_emul_unplug, XEN_IOPORT_UNPLUG);  	xen_platform_pci_unplug = xen_emul_unplug;  } @@ -125,8 +129,10 @@ static int __init parse_xen_emul_unplug(char *arg)  			xen_emul_unplug |= XEN_UNPLUG_AUX_IDE_DISKS;  		else if (!strncmp(p, "nics", l))  			xen_emul_unplug |= XEN_UNPLUG_ALL_NICS; -		else if (!strncmp(p, "ignore", l)) -			xen_emul_unplug |= XEN_UNPLUG_IGNORE; +		else if (!strncmp(p, "unnecessary", l)) +			xen_emul_unplug |= XEN_UNPLUG_UNNECESSARY; +		else if (!strncmp(p, "never", l)) +			xen_emul_unplug |= XEN_UNPLUG_NEVER;  		else  			printk(KERN_WARNING "unrecognised option '%s' "  				 "in parameter 'xen_emul_unplug'\n", p); | 
