Revision 070e76cb3ffe43f6855492e77c96680c562598f0 authored by Leonid Yegoshin on 27 November 2014, 11:13:08 UTC, committed by Ralf Baechle on 27 November 2014, 16:21:56 UTC
There is a potential race when probing the TLB in TLBL/M/S exception handlers for a matching entry. Between the time we hit a TLBL/S/M exception and the time we get to execute the TLBP instruction, the HTW may have replaced the TLB entry we are interested in hence the TLB probe may fail. However, in the existing handlers, we never checked the status of the TLBP (ie check the result in the C0/Index register). We fix this by adding such a check when the core implements the HTW. If we couldn't find a matching entry, we return back and try again. Signed-off-by: Leonid Yegoshin <Leonid.Yegoshin@imgtec.com> Signed-off-by: Markos Chandras <markos.chandras@imgtec.com> Reviewed-by: James Hogan <james.hogan@imgtec.com> Cc: <stable@vger.kernel.org> # v3.17+ Cc: linux-mips@linux-mips.org Patchwork: https://patchwork.linux-mips.org/patch/8599/ Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
1 parent b4da18b
File | Mode | Size |
---|---|---|
internal | ||
ablk_helper.h | -rw-r--r-- | 734 bytes |
aead.h | -rw-r--r-- | 2.6 KB |
aes.h | -rw-r--r-- | 1019 bytes |
algapi.h | -rw-r--r-- | 10.9 KB |
authenc.h | -rw-r--r-- | 845 bytes |
b128ops.h | -rw-r--r-- | 2.4 KB |
blowfish.h | -rw-r--r-- | 376 bytes |
cast5.h | -rw-r--r-- | 551 bytes |
cast6.h | -rw-r--r-- | 597 bytes |
cast_common.h | -rw-r--r-- | 193 bytes |
compress.h | -rw-r--r-- | 4.0 KB |
cryptd.h | -rw-r--r-- | 1.8 KB |
crypto_wq.h | -rw-r--r-- | 122 bytes |
ctr.h | -rw-r--r-- | 524 bytes |
des.h | -rw-r--r-- | 503 bytes |
drbg.h | -rw-r--r-- | 8.9 KB |
gf128mul.h | -rw-r--r-- | 8.0 KB |
hash.h | -rw-r--r-- | 9.0 KB |
hash_info.h | -rw-r--r-- | 1.1 KB |
if_alg.h | -rw-r--r-- | 2.2 KB |
lrw.h | -rw-r--r-- | 1.2 KB |
mcryptd.h | -rw-r--r-- | 2.3 KB |
md5.h | -rw-r--r-- | 288 bytes |
null.h | -rw-r--r-- | 192 bytes |
padlock.h | -rw-r--r-- | 649 bytes |
pcrypt.h | -rw-r--r-- | 1.4 KB |
pkcs7.h | -rw-r--r-- | 969 bytes |
public_key.h | -rw-r--r-- | 2.7 KB |
rng.h | -rw-r--r-- | 1.8 KB |
scatterwalk.h | -rw-r--r-- | 3.2 KB |
serpent.h | -rw-r--r-- | 673 bytes |
sha.h | -rw-r--r-- | 2.3 KB |
skcipher.h | -rw-r--r-- | 2.7 KB |
twofish.h | -rw-r--r-- | 716 bytes |
vmac.h | -rw-r--r-- | 2.1 KB |
xts.h | -rw-r--r-- | 613 bytes |
Computing file changes ...