Messages in this thread Patch in this message | | | From | "H. Peter Anvin" <> | Subject | [PATCH 2/5] x86, sleep: always save the value of EFER | Date | Fri, 13 Nov 2009 15:28:14 -0800 |
| |
Always save the value of EFER, regardless of the state of NX. Since EFER may not actually exist, use rdmsr_safe() to do so.
Signed-off-by: H. Peter Anvin <hpa@zytor.com> Cc: Pavel Machek <pavel@ucw.cz> Cc: Rafael J. Wysocki <rjw@sisk.pl> Cc: Nigel Cunningham <nigel@tuxonice.net> --- arch/x86/kernel/acpi/sleep.c | 9 +++------ 1 files changed, 3 insertions(+), 6 deletions(-)
diff --git a/arch/x86/kernel/acpi/sleep.c b/arch/x86/kernel/acpi/sleep.c index ca93638..c2e4455 100644 --- a/arch/x86/kernel/acpi/sleep.c +++ b/arch/x86/kernel/acpi/sleep.c @@ -78,12 +78,9 @@ int acpi_save_state_mem(void) #ifndef CONFIG_64BIT store_gdt((struct desc_ptr *)&header->pmode_gdt); - header->pmode_efer_low = nx_enabled; - if (header->pmode_efer_low & 1) { - /* This is strange, why not save efer, always? */ - rdmsr(MSR_EFER, header->pmode_efer_low, - header->pmode_efer_high); - } + header->pmode_efer_low = header->pmode_efer_high = 0; + rdmsr_safe(MSR_EFER, + &header->pmode_efer_low, &header->pmode_efer_high); #endif /* !CONFIG_64BIT */ header->pmode_cr0 = read_cr0(); -- 1.6.2.5
| |