On 05/15/2017 10:27, Konstantin Belousov wrote:
On Mon, May 15, 2017 at 02:37:16PM -0230, Jonathan Anderson wrote:
On 15 May 2017, at 7:26, Konstantin Belousov wrote:
Try this.  If it works, I will write a proper patch.

diff --git a/sys/amd64/amd64/cpu_switch.S
b/sys/amd64/amd64/cpu_switch.S
index 33437ad16e6..9c0cd05ebea 100644
--- a/sys/amd64/amd64/cpu_switch.S
+++ b/sys/amd64/amd64/cpu_switch.S
@@ -369,6 +369,11 @@ END(savectx)
   * Resuming processor state from pcb.
   */
  ENTRY(resumectx)
+       movl    $MSR_EFER,%ecx
+       rdmsr
+       orl     $EFER_NXE,%eax
+       wrmsr
+
        /* Switch to KPML4phys. */
        movq    KPML4phys,%rax
        movq    %rax,%cr3
Running drm-next (which has -CURRENT last merged somewhere around
r317651), this patch fixes one of the two problems I've been
experiencing with suspend/resume. Definite progress. :)
Could you, please, clarify.  Does the resume work after this  ?  If not,
how did you diagnosed that 'one of two problems' is solved with the change ?

I can confirm that suspending to a S3 state and resuming now works on the drm-next branch as well.

this matches the previous behavior on my systems before recent updates which broke suspend/resume - so i believe this patch works from a functional POV.

-pete

--
Pete Wright
p...@nomadlogic.org
@nomadlogicLA

_______________________________________________
freebsd-current@freebsd.org mailing list
https://lists.freebsd.org/mailman/listinfo/freebsd-current
To unsubscribe, send any mail to "freebsd-current-unsubscr...@freebsd.org"

Reply via email to