aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--Documentation/kernel-parameters.txt4
-rw-r--r--arch/x86/xen/enlighten.c13
2 files changed, 17 insertions, 0 deletions
diff --git a/Documentation/kernel-parameters.txt b/Documentation/kernel-parameters.txt
index c1b9aa8c5a52..403f927276cd 100644
--- a/Documentation/kernel-parameters.txt
+++ b/Documentation/kernel-parameters.txt
@@ -3691,6 +3691,10 @@ bytes respectively. Such letter suffixes can also be entirely omitted.
3691 Disables the ticketlock slowpath using Xen PV 3691 Disables the ticketlock slowpath using Xen PV
3692 optimizations. 3692 optimizations.
3693 3693
3694 xen_nopv [X86]
3695 Disables the PV optimizations forcing the HVM guest to
3696 run as generic HVM guest with no PV drivers.
3697
3694 xirc2ps_cs= [NET,PCMCIA] 3698 xirc2ps_cs= [NET,PCMCIA]
3695 Format: 3699 Format:
3696 <irq>,<irq_mask>,<io>,<full_duplex>,<do_sound>,<lockup_hack>[,<irq2>[,<irq3>[,<irq4>]]] 3700 <irq>,<irq_mask>,<io>,<full_duplex>,<do_sound>,<lockup_hack>[,<irq2>[,<irq3>[,<irq4>]]]
diff --git a/arch/x86/xen/enlighten.c b/arch/x86/xen/enlighten.c
index ffb101e45731..eb822391b84c 100644
--- a/arch/x86/xen/enlighten.c
+++ b/arch/x86/xen/enlighten.c
@@ -1826,8 +1826,19 @@ static void __init xen_hvm_guest_init(void)
1826 xen_hvm_init_mmu_ops(); 1826 xen_hvm_init_mmu_ops();
1827} 1827}
1828 1828
1829static bool xen_nopv = false;
1830static __init int xen_parse_nopv(char *arg)
1831{
1832 xen_nopv = true;
1833 return 0;
1834}
1835early_param("xen_nopv", xen_parse_nopv);
1836
1829static uint32_t __init xen_hvm_platform(void) 1837static uint32_t __init xen_hvm_platform(void)
1830{ 1838{
1839 if (xen_nopv)
1840 return 0;
1841
1831 if (xen_pv_domain()) 1842 if (xen_pv_domain())
1832 return 0; 1843 return 0;
1833 1844
@@ -1836,6 +1847,8 @@ static uint32_t __init xen_hvm_platform(void)
1836 1847
1837bool xen_hvm_need_lapic(void) 1848bool xen_hvm_need_lapic(void)
1838{ 1849{
1850 if (xen_nopv)
1851 return false;
1839 if (xen_pv_domain()) 1852 if (xen_pv_domain())
1840 return false; 1853 return false;
1841 if (!xen_hvm_domain()) 1854 if (!xen_hvm_domain())