regression suspend/resume on Lenovo T420
Konstantin Belousov
kostikbel at gmail.com
Mon May 15 09:56:54 UTC 2017
On Sun, May 14, 2017 at 08:02:52PM +0000, Poul-Henning Kamp wrote:
> --------
> In message <20170514193006.GA1298 at 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
More information about the freebsd-current
mailing list