[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Xen-devel] [PATCH v2] x86/boot: enable NMIs after traps init
In certain scenarios, NMIs might be disabled during Xen boot process. Such situation will cause alternative_instructions() to: panic("Timed out waiting for alternatives self-NMI to hit"); This bug was originally seen when using Tboot to boot Xen. To prevent this from happening, enable NMIs during cpu_init() and during __start_xen() for BSP. Signed-off-by: Sergey Dyasli <sergey.dyasli@xxxxxxxxxx> --- v2: - Added enable_nmis() to __start_xen() for BSP - Added comments as per Andrew's suggestion CC: Jan Beulich <jbeulich@xxxxxxxx> CC: Andrew Cooper <andrew.cooper3@xxxxxxxxxx> CC: Wei Liu <wei.liu2@xxxxxxxxxx> --- xen/arch/x86/cpu/common.c | 3 +++ xen/arch/x86/setup.c | 3 +++ 2 files changed, 6 insertions(+) diff --git a/xen/arch/x86/cpu/common.c b/xen/arch/x86/cpu/common.c index 057859ab14..2d02335fef 100644 --- a/xen/arch/x86/cpu/common.c +++ b/xen/arch/x86/cpu/common.c @@ -819,6 +819,9 @@ void cpu_init(void) #define CD(register) asm volatile ( "mov %0,%%db" #register : : "r"(0UL) ); CD(0); CD(1); CD(2); CD(3); /* no db4 and db5 */; CD(6); CD(7); #undef CD + + /* Enable NMIs in case our loader (e.g. Tboot) has left them disabled */ + enable_nmis(); } void cpu_uninit(unsigned int cpu) diff --git a/xen/arch/x86/setup.c b/xen/arch/x86/setup.c index 93b79c7c0c..194388ef47 100644 --- a/xen/arch/x86/setup.c +++ b/xen/arch/x86/setup.c @@ -708,6 +708,9 @@ void __init noreturn __start_xen(unsigned long mbi_p) /* Full exception support from here on in. */ + /* Re-enable NMIs in case our loader (e.g. Tboot) has left them disabled. */ + enable_nmis(); + if ( pvh_boot ) { /* -- 2.17.1 _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxxxxxxxxx https://lists.xenproject.org/mailman/listinfo/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |