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 |
---|---|---|
ac97_codec.h | -rw-r--r-- | 28.2 KB |
aci.h | -rw-r--r-- | 2.4 KB |
ad1816a.h | -rw-r--r-- | 5.4 KB |
ad1843.h | -rw-r--r-- | 1.5 KB |
adau1373.h | -rw-r--r-- | 699 bytes |
aess.h | -rw-r--r-- | 1.6 KB |
ak4113.h | -rw-r--r-- | 10.6 KB |
ak4114.h | -rw-r--r-- | 9.9 KB |
ak4117.h | -rw-r--r-- | 9.0 KB |
ak4531_codec.h | -rw-r--r-- | 3.1 KB |
ak4641.h | -rw-r--r-- | 622 bytes |
ak4xxx-adda.h | -rw-r--r-- | 3.3 KB |
alc5623.h | -rw-r--r-- | 497 bytes |
asequencer.h | -rw-r--r-- | 3.6 KB |
asound.h | -rw-r--r-- | 1.3 KB |
asoundef.h | -rw-r--r-- | 16.7 KB |
atmel-abdac.h | -rw-r--r-- | 639 bytes |
atmel-ac97c.h | -rw-r--r-- | 1.3 KB |
compress_driver.h | -rw-r--r-- | 6.2 KB |
control.h | -rw-r--r-- | 8.4 KB |
core.h | -rw-r--r-- | 14.8 KB |
cs4231-regs.h | -rw-r--r-- | 8.3 KB |
cs4271.h | -rw-r--r-- | 1.4 KB |
cs42l52.h | -rw-r--r-- | 738 bytes |
cs42l56.h | -rw-r--r-- | 1.2 KB |
cs42l73.h | -rw-r--r-- | 507 bytes |
cs8403.h | -rw-r--r-- | 8.6 KB |
cs8427.h | -rw-r--r-- | 10.4 KB |
da7213.h | -rw-r--r-- | 1.2 KB |
da9055.h | -rw-r--r-- | 914 bytes |
designware_i2s.h | -rw-r--r-- | 2.0 KB |
dmaengine_pcm.h | -rw-r--r-- | 5.9 KB |
emu10k1.h | -rw-r--r-- | 89.2 KB |
emu10k1_synth.h | -rw-r--r-- | 1.3 KB |
emu8000.h | -rw-r--r-- | 4.0 KB |
emu8000_reg.h | -rw-r--r-- | 10.2 KB |
emux_legacy.h | -rw-r--r-- | 5.4 KB |
emux_synth.h | -rw-r--r-- | 7.5 KB |
es1688.h | -rw-r--r-- | 3.6 KB |
gus.h | -rw-r--r-- | 20.3 KB |
hda_hwdep.h | -rw-r--r-- | 1.4 KB |
hda_verbs.h | -rw-r--r-- | 16.7 KB |
hwdep.h | -rw-r--r-- | 2.6 KB |
i2c.h | -rw-r--r-- | 3.5 KB |
info.h | -rw-r--r-- | 7.1 KB |
initval.h | -rw-r--r-- | 3.1 KB |
jack.h | -rw-r--r-- | 2.6 KB |
l3.h | -rw-r--r-- | 287 bytes |
max9768.h | -rw-r--r-- | 729 bytes |
max98088.h | -rw-r--r-- | 1.3 KB |
max98090.h | -rw-r--r-- | 754 bytes |
max98095.h | -rw-r--r-- | 1.5 KB |
memalloc.h | -rw-r--r-- | 4.4 KB |
minors.h | -rw-r--r-- | 4.3 KB |
mixer_oss.h | -rw-r--r-- | 2.4 KB |
mpu401.h | -rw-r--r-- | 4.5 KB |
omap-pcm.h | -rw-r--r-- | 864 bytes |
opl3.h | -rw-r--r-- | 12.4 KB |
opl4.h | -rw-r--r-- | 1.1 KB |
pcm-indirect.h | -rw-r--r-- | 5.6 KB |
pcm.h | -rw-r--r-- | 39.9 KB |
pcm_oss.h | -rw-r--r-- | 2.6 KB |
pcm_params.h | -rw-r--r-- | 8.5 KB |
pt2258.h | -rw-r--r-- | 1.2 KB |
pxa2xx-lib.h | -rw-r--r-- | 1.5 KB |
rawmidi.h | -rw-r--r-- | 6.0 KB |
rcar_snd.h | -rw-r--r-- | 2.1 KB |
rt286.h | -rw-r--r-- | 460 bytes |
rt5640.h | -rw-r--r-- | 626 bytes |
rt5645.h | -rw-r--r-- | 679 bytes |
rt5651.h | -rw-r--r-- | 468 bytes |
rt5670.h | -rw-r--r-- | 636 bytes |
rt5677.h | -rw-r--r-- | 745 bytes |
s3c24xx_uda134x.h | -rw-r--r-- | 212 bytes |
sb.h | -rw-r--r-- | 11.1 KB |
sb16_csp.h | -rw-r--r-- | 2.7 KB |
seq_device.h | -rw-r--r-- | 2.5 KB |
seq_kernel.h | -rw-r--r-- | 4.2 KB |
seq_midi_emul.h | -rw-r--r-- | 7.3 KB |
seq_midi_event.h | -rw-r--r-- | 2.2 KB |
seq_oss.h | -rw-r--r-- | 2.9 KB |
seq_oss_legacy.h | -rw-r--r-- | 1.0 KB |
seq_virmidi.h | -rw-r--r-- | 2.7 KB |
sh_dac_audio.h | -rw-r--r-- | 587 bytes |
sh_fsi.h | -rw-r--r-- | 847 bytes |
simple_card.h | -rw-r--r-- | 764 bytes |
snd_wavefront.h | -rw-r--r-- | 5.5 KB |
soc-dai.h | -rw-r--r-- | 9.4 KB |
soc-dapm.h | -rw-r--r-- | 25.4 KB |
soc-dpcm.h | -rw-r--r-- | 4.7 KB |
soc.h | -rw-r--r-- | 49.5 KB |
soundfont.h | -rw-r--r-- | 4.5 KB |
spear_dma.h | -rw-r--r-- | 999 bytes |
spear_spdif.h | -rw-r--r-- | 1010 bytes |
sta32x.h | -rw-r--r-- | 912 bytes |
sta350.h | -rw-r--r-- | 1.6 KB |
tas2552-plat.h | -rw-r--r-- | 678 bytes |
tas5086.h | -rw-r--r-- | 171 bytes |
tea6330t.h | -rw-r--r-- | 1.1 KB |
timer.h | -rw-r--r-- | 5.4 KB |
tlv.h | -rw-r--r-- | 4.0 KB |
tlv320aic32x4.h | -rw-r--r-- | 900 bytes |
tlv320aic3x.h | -rw-r--r-- | 1.9 KB |
tlv320dac33-plat.h | -rw-r--r-- | 720 bytes |
tpa6130a2-plat.h | -rw-r--r-- | 900 bytes |
uda134x.h | -rw-r--r-- | 1.2 KB |
uda1380.h | -rw-r--r-- | 481 bytes |
util_mem.h | -rw-r--r-- | 2.3 KB |
vx_core.h | -rw-r--r-- | 15.3 KB |
wavefront.h | -rw-r--r-- | 18.8 KB |
wm0010.h | -rw-r--r-- | 679 bytes |
wm1250-ev1.h | -rw-r--r-- | 656 bytes |
wm2000.h | -rw-r--r-- | 625 bytes |
wm2200.h | -rw-r--r-- | 1.5 KB |
wm5100.h | -rw-r--r-- | 1.2 KB |
wm8903.h | -rw-r--r-- | 15.2 KB |
wm8904.h | -rw-r--r-- | 7.4 KB |
wm8955.h | -rw-r--r-- | 662 bytes |
wm8960.h | -rw-r--r-- | 603 bytes |
wm8962.h | -rw-r--r-- | 1.8 KB |
wm8993.h | -rw-r--r-- | 1.2 KB |
wm8996.h | -rw-r--r-- | 1.4 KB |
wm9081.h | -rw-r--r-- | 661 bytes |
wm9090.h | -rw-r--r-- | 780 bytes |
wss.h | -rw-r--r-- | 8.5 KB |
Computing file changes ...