svn commit: r304148 - stable/11/sys/arm64/arm64
Ed Schouten
ed at FreeBSD.org
Mon Aug 15 11:16:45 UTC 2016
Author: ed
Date: Mon Aug 15 11:16:43 2016
New Revision: 304148
URL: https://svnweb.freebsd.org/changeset/base/304148
Log:
MFC r303923:
Make cpu_set_user_tls() work when called on the running thread.
On all the other architectures, this function can also be called on the
currently running thread. In this case, we shouldn't fix up the address
in the PCB, but also patch up the register itself. Otherwise it will not
become active and will simply become overwritten by the next switch.
Reviewed by: imp
Differential Revision: https://reviews.freebsd.org/D7437
Modified:
stable/11/sys/arm64/arm64/vm_machdep.c
Directory Properties:
stable/11/ (props changed)
Modified: stable/11/sys/arm64/arm64/vm_machdep.c
==============================================================================
--- stable/11/sys/arm64/arm64/vm_machdep.c Mon Aug 15 10:46:33 2016 (r304147)
+++ stable/11/sys/arm64/arm64/vm_machdep.c Mon Aug 15 11:16:43 2016 (r304148)
@@ -201,6 +201,8 @@ cpu_set_user_tls(struct thread *td, void
pcb = td->td_pcb;
pcb->pcb_tpidr_el0 = (register_t)tls_base;
+ if (td == curthread)
+ WRITE_SPECIALREG(tpidr_el0, tls_base);
return (0);
}
More information about the svn-src-stable
mailing list