Re: regression suspend/resume on Lenovo T420

From: Edward Tomasz Napiera??a <trasz_at_FreeBSD.org>
Date: Mon, 15 May 2017 18:37:58 +0100
On 0515T1256, Konstantin Belousov wrote:
> 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
> _at__at_ -369,6 +369,11 _at__at_ 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

Thanks!  The patch fixes resume for me, for both vt(4) and X11.
Received on Mon May 15 2017 - 15:38:03 UTC

This archive was generated by hypermail 2.4.0 : Wed May 19 2021 - 11:41:11 UTC