1
0
mirror of https://git.FreeBSD.org/src.git synced 2025-01-25 16:13:17 +00:00
freebsd/sys
Svatopluk Kraus 52ece7d15b Fix duplicate TLB entries issue during section promotion/demotion.
Such situation is defined as UNPREDICTABLE by arm arm manual.

This patch fixes all explicit TLB fetches which could cause this issue
and speculative TLB fetches for sections mapped in user address space.
Speculative TLB fetches for sections mapped in kernel address space are
not fixed yet as the break-before-make approach must be implemented for
kernel mappings too. This means that promoted/demoted section will be
unmapped for a while. Either kernel stack the promotion/demotion is
being done on or L1 page table(s) which must be modified may be mapped
by this section. Thus the fix will not be so simple like for userland
mappings.

The issue was detectable only on Cortex-A8 platforms and only very
rarely. It was reported few times. First, it was by Mikael Urankar
in June 2015. He helped to identify the mechanism of this issue, but
we were not sure how to fix it correctly until now.

PR:		208381
Reported by:	Mikael Urankar (mikael.urankar at gmail.com)
Reviewed by:	kib
2016-04-22 06:42:50 +00:00
..
amd64 sys: use our roundup2/rounddown2() macros when param.h is available. 2016-04-21 19:57:40 +00:00
arm Fix duplicate TLB entries issue during section promotion/demotion. 2016-04-22 06:42:50 +00:00
arm64 sys: use our roundup2/rounddown2() macros when param.h is available. 2016-04-21 19:57:40 +00:00
boot sys: use our roundup2/rounddown2() macros when param.h is available. 2016-04-21 19:57:40 +00:00
bsm
cam Yet more redundant parenthesis from r298431. 2016-04-21 20:30:38 +00:00
cddl Make the second argument of dtrace_invop() a trapframe pointer. 2016-04-17 23:08:47 +00:00
compat linprocfs_doproclimits: Initialize error return before use 2016-04-20 01:03:06 +00:00
conf Revert r298357 2016-04-20 22:41:19 +00:00
contrib Use NULL instead of 0 for pointer comparison. 2016-04-15 03:43:16 +00:00
crypto aesni(4): Initialize error before use 2016-04-20 03:05:32 +00:00
ddb Indentation issues. 2016-04-20 16:19:44 +00:00
dev hyperv/et: Make Hyper-V event timer a device. 2016-04-22 05:15:59 +00:00
fs sys: use our roundup2/rounddown2() macros when param.h is available. 2016-04-21 19:57:40 +00:00
gdb
geom DRY on buffer sizes. Update to r298420. 2016-04-21 21:13:41 +00:00
gnu Change OpenWRT imported dtsi files 2016-04-20 14:29:03 +00:00
i386 Yet more redundant parenthesis from r298431. 2016-04-21 20:30:38 +00:00
isa isa/pnp: for pointers replace 0 with NULL. 2016-04-14 17:20:35 +00:00
kern sys: use our roundup2/rounddown2() macros when param.h is available. 2016-04-21 19:57:40 +00:00
kgssapi kgssapi(4): Don't allow user-provided arguments to overrun stack buffer 2016-04-20 05:02:13 +00:00
libkern kern: for pointers replace 0 with NULL. 2016-04-15 16:10:11 +00:00
mips sys: use our roundup2/rounddown2() macros when param.h is available. 2016-04-21 19:57:40 +00:00
modules Replace the A20 kernel config with a generic ALLWINNER kernel config that 2016-04-21 16:49:04 +00:00
net sys: use our roundup2/rounddown2() macros when param.h is available. 2016-04-21 19:57:40 +00:00
net80211 sys: use our roundup2/rounddown2() macros when param.h is available. 2016-04-21 19:57:40 +00:00
netgraph sys: use our nitems() macro when param.h is available. 2016-04-21 19:40:10 +00:00
netinet Prevent underflows in tp->snd_wnd if the remote side ACKs more than 2016-04-21 15:06:53 +00:00
netinet6 Indentation issues. 2016-04-20 16:19:44 +00:00
netipsec Remove stale function declaration 2016-04-21 11:02:06 +00:00
netnatm kernel: use our nitems() macro when it is available through param.h. 2016-04-19 23:48:27 +00:00
netpfil netpfil: for pointers replace 0 with NULL. 2016-04-15 12:24:01 +00:00
netsmb Remove unused SMB_DIALECT_MAX macro. 2016-04-20 21:13:24 +00:00
nfs Do not try to install a default route for each interface found, because 2016-03-27 23:16:37 +00:00
nfsclient
nfsserver
nlm Remove slightly used const values that can be replaced with nitems(). 2016-04-21 15:38:28 +00:00
ofed Add KASSERT() and set error code in dead code case to help static code 2016-04-22 06:39:07 +00:00
opencrypto
pc98 Use our nitems() macro when param.h is available. 2016-04-20 15:45:55 +00:00
powerpc sys: use our roundup2/rounddown2() macros when param.h is available. 2016-04-21 19:57:40 +00:00
riscv risc-v: for pointers replace 0 with NULL. 2016-04-14 17:25:50 +00:00
rpc kgssapi(4): Fix string overrun in Kerberos principal construction 2016-04-20 04:45:23 +00:00
security sys: use our nitems() macro when param.h is available. 2016-04-21 19:40:10 +00:00
sparc64 Use our nitems() macro when param.h is available. 2016-04-20 15:45:55 +00:00
sys Get rid of rctl_lock; use racct_lock where appropriate. The fast paths 2016-04-21 16:22:52 +00:00
teken
tests
tools
ufs sys: use our roundup2/rounddown2() macros when param.h is available. 2016-04-21 19:57:40 +00:00
vm sys: use our roundup2/rounddown2() macros when param.h is available. 2016-04-21 19:57:40 +00:00
x86 sys: use our roundup2/rounddown2() macros when param.h is available. 2016-04-21 19:57:40 +00:00
xdr RPC: for pointers replace 0 with NULL. 2016-04-14 17:06:37 +00:00
xen
Makefile