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 |
---|---|---|
9p | ||
bluetooth | ||
caif | ||
irda | ||
iucv | ||
netfilter | ||
netns | ||
nfc | ||
phonet | ||
sctp | ||
tc_act | ||
6lowpan.h | -rw-r--r-- | 10.9 KB |
Space.h | -rw-r--r-- | 1.1 KB |
act_api.h | -rw-r--r-- | 3.7 KB |
addrconf.h | -rw-r--r-- | 10.1 KB |
af_ieee802154.h | -rw-r--r-- | 1.8 KB |
af_rxrpc.h | -rw-r--r-- | 1.8 KB |
af_unix.h | -rw-r--r-- | 2.0 KB |
af_vsock.h | -rw-r--r-- | 6.1 KB |
ah.h | -rw-r--r-- | 343 bytes |
arp.h | -rw-r--r-- | 1.8 KB |
atmclip.h | -rw-r--r-- | 1.4 KB |
ax25.h | -rw-r--r-- | 14.4 KB |
ax88796.h | -rw-r--r-- | 998 bytes |
busy_poll.h | -rw-r--r-- | 4.0 KB |
cfg80211-wext.h | -rw-r--r-- | 2.0 KB |
cfg80211.h | -rw-r--r-- | 172.8 KB |
checksum.h | -rw-r--r-- | 3.9 KB |
cipso_ipv4.h | -rw-r--r-- | 7.9 KB |
cls_cgroup.h | -rw-r--r-- | 1.3 KB |
codel.h | -rw-r--r-- | 10.7 KB |
compat.h | -rw-r--r-- | 2.0 KB |
datalink.h | -rw-r--r-- | 580 bytes |
dcbevent.h | -rw-r--r-- | 1.3 KB |
dcbnl.h | -rw-r--r-- | 4.0 KB |
dn.h | -rw-r--r-- | 7.0 KB |
dn_dev.h | -rw-r--r-- | 5.3 KB |
dn_fib.h | -rw-r--r-- | 3.9 KB |
dn_neigh.h | -rw-r--r-- | 782 bytes |
dn_nsp.h | -rw-r--r-- | 5.9 KB |
dn_route.h | -rw-r--r-- | 4.4 KB |
dsa.h | -rw-r--r-- | 6.1 KB |
dsfield.h | -rw-r--r-- | 1.1 KB |
dst.h | -rw-r--r-- | 12.4 KB |
dst_ops.h | -rw-r--r-- | 1.9 KB |
esp.h | -rw-r--r-- | 225 bytes |
ethoc.h | -rw-r--r-- | 520 bytes |
fib_rules.h | -rw-r--r-- | 3.2 KB |
firewire.h | -rw-r--r-- | 597 bytes |
flow.h | -rw-r--r-- | 6.0 KB |
flow_keys.h | -rw-r--r-- | 1.5 KB |
flowcache.h | -rw-r--r-- | 561 bytes |
garp.h | -rw-r--r-- | 2.6 KB |
gen_stats.h | -rw-r--r-- | 2.1 KB |
genetlink.h | -rw-r--r-- | 12.2 KB |
geneve.h | -rw-r--r-- | 2.4 KB |
gre.h | -rw-r--r-- | 2.2 KB |
gro_cells.h | -rw-r--r-- | 2.4 KB |
gue.h | -rw-r--r-- | 339 bytes |
icmp.h | -rw-r--r-- | 1.5 KB |
ieee80211_radiotap.h | -rw-r--r-- | 12.2 KB |
ieee802154.h | -rw-r--r-- | 6.9 KB |
ieee802154_netdev.h | -rw-r--r-- | 11.4 KB |
if_inet6.h | -rw-r--r-- | 6.1 KB |
inet6_connection_sock.h | -rw-r--r-- | 1.4 KB |
inet6_hashtables.h | -rw-r--r-- | 2.9 KB |
inet_common.h | -rw-r--r-- | 1.5 KB |
inet_connection_sock.h | -rw-r--r-- | 11.1 KB |
inet_ecn.h | -rw-r--r-- | 5.6 KB |
inet_frag.h | -rw-r--r-- | 4.9 KB |
inet_hashtables.h | -rw-r--r-- | 12.4 KB |
inet_sock.h | -rw-r--r-- | 6.2 KB |
inet_timewait_sock.h | -rw-r--r-- | 6.4 KB |
inetpeer.h | -rw-r--r-- | 4.0 KB |
ip.h | -rw-r--r-- | 15.9 KB |
ip6_checksum.h | -rw-r--r-- | 2.9 KB |
ip6_fib.h | -rw-r--r-- | 7.2 KB |
ip6_route.h | -rw-r--r-- | 5.6 KB |
ip6_tunnel.h | -rw-r--r-- | 2.8 KB |
ip_fib.h | -rw-r--r-- | 8.4 KB |
ip_tunnels.h | -rw-r--r-- | 5.7 KB |
ip_vs.h | -rw-r--r-- | 45.0 KB |
ipcomp.h | -rw-r--r-- | 620 bytes |
ipconfig.h | -rw-r--r-- | 772 bytes |
ipv6.h | -rw-r--r-- | 25.6 KB |
ipx.h | -rw-r--r-- | 4.3 KB |
iw_handler.h | -rw-r--r-- | 21.4 KB |
lapb.h | -rw-r--r-- | 4.7 KB |
lib80211.h | -rw-r--r-- | 3.9 KB |
llc.h | -rw-r--r-- | 4.3 KB |
llc_c_ac.h | -rw-r--r-- | 9.3 KB |
llc_c_ev.h | -rw-r--r-- | 10.7 KB |
llc_c_st.h | -rw-r--r-- | 1.7 KB |
llc_conn.h | -rw-r--r-- | 4.0 KB |
llc_if.h | -rw-r--r-- | 2.2 KB |
llc_pdu.h | -rw-r--r-- | 14.1 KB |
llc_s_ac.h | -rw-r--r-- | 1.6 KB |
llc_s_ev.h | -rw-r--r-- | 2.2 KB |
llc_s_st.h | -rw-r--r-- | 941 bytes |
llc_sap.h | -rw-r--r-- | 1.1 KB |
mac80211.h | -rw-r--r-- | 190.2 KB |
mac802154.h | -rw-r--r-- | 7.2 KB |
mip6.h | -rw-r--r-- | 1.6 KB |
mld.h | -rw-r--r-- | 2.8 KB |
mrp.h | -rw-r--r-- | 3.0 KB |
ndisc.h | -rw-r--r-- | 5.9 KB |
neighbour.h | -rw-r--r-- | 12.5 KB |
net_namespace.h | -rw-r--r-- | 8.9 KB |
net_ratelimit.h | -rw-r--r-- | 181 bytes |
netevent.h | -rw-r--r-- | 739 bytes |
netlabel.h | -rw-r--r-- | 17.2 KB |
netlink.h | -rw-r--r-- | 34.3 KB |
netprio_cgroup.h | -rw-r--r-- | 1.1 KB |
netrom.h | -rw-r--r-- | 7.6 KB |
nexthop.h | -rw-r--r-- | 821 bytes |
nl802154.h | -rw-r--r-- | 4.5 KB |
p8022.h | -rw-r--r-- | 408 bytes |
ping.h | -rw-r--r-- | 3.6 KB |
pkt_cls.h | -rw-r--r-- | 9.1 KB |
pkt_sched.h | -rw-r--r-- | 3.5 KB |
protocol.h | -rw-r--r-- | 4.1 KB |
psnap.h | -rw-r--r-- | 312 bytes |
raw.h | -rw-r--r-- | 1.8 KB |
rawv6.h | -rw-r--r-- | 543 bytes |
red.h | -rw-r--r-- | 10.0 KB |
regulatory.h | -rw-r--r-- | 8.2 KB |
request_sock.h | -rw-r--r-- | 8.0 KB |
rose.h | -rw-r--r-- | 7.6 KB |
route.h | -rw-r--r-- | 8.7 KB |
rtnetlink.h | -rw-r--r-- | 5.1 KB |
sch_generic.h | -rw-r--r-- | 19.6 KB |
scm.h | -rw-r--r-- | 3.4 KB |
secure_seq.h | -rw-r--r-- | 677 bytes |
slhc_vj.h | -rw-r--r-- | 6.6 KB |
snmp.h | -rw-r--r-- | 5.7 KB |
sock.h | -rw-r--r-- | 63.7 KB |
stp.h | -rw-r--r-- | 344 bytes |
tcp.h | -rw-r--r-- | 50.8 KB |
tcp_memcontrol.h | -rw-r--r-- | 254 bytes |
tcp_states.h | -rw-r--r-- | 1.2 KB |
timewait_sock.h | -rw-r--r-- | 1.2 KB |
transp_v6.h | -rw-r--r-- | 1.8 KB |
tso.h | -rw-r--r-- | 434 bytes |
udp.h | -rw-r--r-- | 9.6 KB |
udp_tunnel.h | -rw-r--r-- | 3.1 KB |
udplite.h | -rw-r--r-- | 3.7 KB |
vsock_addr.h | -rw-r--r-- | 1.0 KB |
vxlan.h | -rw-r--r-- | 2.0 KB |
wext.h | -rw-r--r-- | 1.5 KB |
wimax.h | -rw-r--r-- | 20.0 KB |
wpan-phy.h | -rw-r--r-- | 3.0 KB |
x25.h | -rw-r--r-- | 9.3 KB |
x25device.h | -rw-r--r-- | 348 bytes |
xfrm.h | -rw-r--r-- | 49.2 KB |
![swh spinner](/static/img/swh-spinner.gif)
Computing file changes ...