diff options
author | WANG Cong | 2017-04-12 21:32:13 +0200 |
---|---|---|
committer | David S. Miller | 2017-04-17 18:46:50 +0200 |
commit | 1215e51edad1272e669172b26aa12aac94810c7f (patch) | |
tree | 273156966c9fb351ee4181712ebbcfc576495258 /net/ipv6 | |
parent | sfc: limit the number of receive queues (diff) | |
download | kernel-qcow2-linux-1215e51edad1272e669172b26aa12aac94810c7f.tar.gz kernel-qcow2-linux-1215e51edad1272e669172b26aa12aac94810c7f.tar.xz kernel-qcow2-linux-1215e51edad1272e669172b26aa12aac94810c7f.zip |
ipv4: fix a deadlock in ip_ra_control
Similar to commit 87e9f0315952
("ipv4: fix a potential deadlock in mcast getsockopt() path"),
there is a deadlock scenario for IP_ROUTER_ALERT too:
CPU0 CPU1
---- ----
lock(rtnl_mutex);
lock(sk_lock-AF_INET);
lock(rtnl_mutex);
lock(sk_lock-AF_INET);
Fix this by always locking RTNL first on all setsockopt() paths.
Note, after this patch ip_ra_lock is no longer needed either.
Reported-by: Dmitry Vyukov <dvyukov@google.com>
Tested-by: Andrey Konovalov <andreyknvl@google.com>
Signed-off-by: Cong Wang <xiyou.wangcong@gmail.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'net/ipv6')
0 files changed, 0 insertions, 0 deletions