Date: Wed, 15 Feb 2017 13:22:37 -0800 From: Mark Millard <markmi@dsl-only.net> To: Andrew Turner <andrew@fubar.geek.nz>, svn-src-head@freebsd.org Subject: Re: svn commit: r313772 - head/sys/arm64/arm64 Message-ID: <62A5F129-EFD3-496B-854C-9D8623EFFD38@dsl-only.net>
next in thread | raw e-mail | index | archive | help
> Author: andrew > Date: Wed Feb 15 14:56:47 2017 > New Revision: 313772 > URL:=20 > https://svnweb.freebsd.org/changeset/base/313772 >=20 > Log: > Load the new sp_el0 with interrupts disabled in fork_trampoline. If = an > interrupt arrives in fork_trampoline after sp_el0 was written we may = then > switch to a new thread, enter userland so change this stack pointer, = then > return to this code with the wrong value. This fixes this case by = moving > the load of sp_el0 until after interrupts have been disabled. = https://svnweb.freebsd.org/base/stable/11/sys/arm64/arm64/swtch.S?revision= =3D302408&view=3Dmarkup shows stable/11 has the same issue. Is this to be MFC'd at some point? stable/10 seems to have a different code structure: https://svnweb.freebsd.org/base/stable/10/sys/amd64/amd64/ does not list swtch.S . So I'm unsure about its status for fork returning to the child process and its handling of the stack pointer to be restored. =3D=3D=3D Mark Millard markmi at dsl-only.net
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?62A5F129-EFD3-496B-854C-9D8623EFFD38>