On Mon, 15 May 2017 12:56:47 +0300, Konstantin Belousov wrote
On Sun, May 14, 2017 at 08:02:52PM +0000, Poul-Henning Kamp wrote:
--------
In message <20170514193006.GA1298@brick>, Edward Tomasz =?utf-8?Q?Napiera=C5=82
a?= writes:

I've tried to verify that, and sadly it wasn't it for me.  The commit
that does break resume for me is r316767.  The current -CURRENT with
this one commit reverted ("svn merge -c -r316767 .") suspends and resumes
correctly, at least in VT; I decided to take X out of the picture for
now.

I can confirm that this also makes resume work on my T430s running:

        FreeBSD 12.0-CURRENT #0 r318250M amd64

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


This patch makes resume work on my machine also (at least in VT; X is unfortunately still not working).



_______________________________________________
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