> Author: andrew > Date: Wed Feb 15 14:56:47 2017 > New Revision: 313772 > URL: > https://svnweb.freebsd.org/changeset/base/313772 > > 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=302408&view=markup 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. === Mark Millard markmi at dsl-only.net _______________________________________________ svn-src-head@freebsd.org mailing list https://lists.freebsd.org/mailman/listinfo/svn-src-head To unsubscribe, send any mail to "svn-src-head-unsubscr...@freebsd.org"