# HG changeset patch # Parent d364becfb0835f69e85d273fe2b29035c2d975df diff -r d364becfb083 xen/include/asm-x86/elf.h --- a/xen/include/asm-x86/elf.h +++ b/xen/include/asm-x86/elf.h @@ -3,6 +3,7 @@ typedef struct { unsigned long cr0, cr2, cr3, cr4; + unsigned long efer; } crash_xen_core_t; #include diff -r d364becfb083 xen/include/asm-x86/x86_64/elf.h --- a/xen/include/asm-x86/x86_64/elf.h +++ b/xen/include/asm-x86/x86_64/elf.h @@ -1,6 +1,8 @@ #ifndef __X86_64_ELF_H__ #define __X86_64_ELF_H__ +#include + typedef struct { unsigned long r15; unsigned long r14; @@ -75,6 +77,8 @@ static inline void elf_core_save_regs(EL asm volatile("mov %%cr4, %0" : "=r" (tmp) : ); xen_core_regs->cr4 = tmp; + + rdmsrl(MSR_EFER, xen_core_regs->efer); } #endif /* __X86_64_ELF_H__ */