Author: kib
Date: Sun Jun 11 14:39:08 2017
New Revision: 319825
URL: https://svnweb.freebsd.org/changeset/base/319825

Log:
  More accurately handle early EFER restoration on resume.
  
  Do not try to set LMA bit while CPU is still in legacy mode.
  Apparently Intel CPUs ignore non-id writes to LMA, while AMD's
  (over-)react with #GP.
  
  Reported and tested by:       danfe
  Sponsored by: The FreeBSD Foundation
  MFC after:    3 days

Modified:
  head/sys/x86/acpica/acpi_wakeup.c

Modified: head/sys/x86/acpica/acpi_wakeup.c
==============================================================================
--- head/sys/x86/acpica/acpi_wakeup.c   Sun Jun 11 14:33:16 2017        
(r319824)
+++ head/sys/x86/acpica/acpi_wakeup.c   Sun Jun 11 14:39:08 2017        
(r319825)
@@ -224,7 +224,8 @@ acpi_sleep_machdep(struct acpi_softc *sc, int state)
                WAKECODE_FIXUP(reset_video, uint8_t, (acpi_reset_video != 0));
 
 #ifdef __amd64__
-               WAKECODE_FIXUP(wakeup_efer, uint64_t, rdmsr(MSR_EFER));
+               WAKECODE_FIXUP(wakeup_efer, uint64_t, rdmsr(MSR_EFER) &
+                   ~(EFER_LMA));
 #else
                WAKECODE_FIXUP(wakeup_cr4, register_t, pcb->pcb_cr4);
 #endif
_______________________________________________
svn-src-head@freebsd.org mailing list
https://lists.freebsd.org/mailman/listinfo/svn-src-head
To unsubscribe, send any mail to "svn-src-head-unsubscr...@freebsd.org"

Reply via email to