On AMD, NX feature must be enabled in the efer for NX to be honored in the pte entries, otherwise protection fault. We also set SC for system calls to be enabled.
Signed-off-by: Mukesh Rathor <mukesh.rat...@oracle.com> --- arch/x86/xen/enlighten.c | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/arch/x86/xen/enlighten.c b/arch/x86/xen/enlighten.c index c0cb11f..4af512d 100644 --- a/arch/x86/xen/enlighten.c +++ b/arch/x86/xen/enlighten.c @@ -1499,6 +1499,17 @@ void __ref xen_pvh_secondary_vcpu_init(int cpu) xen_pvh_set_cr_flags(cpu); } +/* This is done in secondary_startup_64 for hvm guests. */ +static void __init xen_configure_efer(void) +{ + u64 efer; + + rdmsrl(MSR_EFER, efer); + efer |= EFER_SCE; + efer |= (cpuid_edx(0x80000001) & (1 << 20)) ? EFER_NX : 0; + wrmsrl(MSR_EFER, efer); +} + static void __init xen_pvh_early_guest_init(void) { if (!xen_feature(XENFEAT_auto_translated_physmap)) @@ -1508,6 +1519,7 @@ static void __init xen_pvh_early_guest_init(void) return; xen_have_vector_callback = 1; + xen_configure_efer(); xen_pvh_set_cr_flags(0); #ifdef CONFIG_X86_32 -- 1.8.3.1 -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/