Skip to content

Commit

Permalink
xen: pvhvm: allow user to request no emulated device unplug
Browse files Browse the repository at this point in the history
this allows the user to disable pvhvm and revert to emulated devices
in case of a system misconfiguration (e.g. initramfs with only
emulated drivers in it).

Signed-off-by: Ian Campbell <ian.campbell@citrix.com>
Acked-by: Jeremy Fitzhardinge <jeremy.fitzhardinge@citrix.com>
Acked-by: Stefano Stabellini <Stefano.Stabellini@eu.citrix.com>
  • Loading branch information
Ian Campbell committed Aug 23, 2010
1 parent da5cabf commit c93a4df
Show file tree
Hide file tree
Showing 3 changed files with 7 additions and 0 deletions.
1 change: 1 addition & 0 deletions Documentation/kernel-parameters.txt
Original file line number Diff line number Diff line change
Expand Up @@ -2631,6 +2631,7 @@ and is between 256 and 4096 characters. It is defined in the file
all -- unplug all emulated devices (NICs and IDE disks)
ignore -- continue loading the Xen platform PCI driver even
if the version check failed
never -- do not unplug even if version check succeeds

xirc2ps_cs= [NET,PCMCIA]
Format:
Expand Down
5 changes: 5 additions & 0 deletions arch/x86/xen/platform-pci-unplug.c
Original file line number Diff line number Diff line change
Expand Up @@ -72,6 +72,9 @@ 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.
Expand Down Expand Up @@ -127,6 +130,8 @@ static int __init parse_xen_emul_unplug(char *arg)
xen_emul_unplug |= XEN_UNPLUG_ALL_NICS;
else if (!strncmp(p, "ignore", l))
xen_emul_unplug |= XEN_UNPLUG_IGNORE;
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);
Expand Down
1 change: 1 addition & 0 deletions include/xen/platform_pci.h
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,7 @@
#define XEN_UNPLUG_AUX_IDE_DISKS 4
#define XEN_UNPLUG_ALL 7
#define XEN_UNPLUG_IGNORE 8
#define XEN_UNPLUG_NEVER 16

static inline int xen_must_unplug_nics(void) {
#if (defined(CONFIG_XEN_NETDEV_FRONTEND) || \
Expand Down

0 comments on commit c93a4df

Please sign in to comment.