summaryrefslogtreecommitdiffstats
path: root/net
diff options
context:
space:
mode:
authorDavid S. Miller <davem@davemloft.net>2019-06-17 16:27:43 -0700
committerDavid S. Miller <davem@davemloft.net>2019-06-17 16:27:43 -0700
commit4bd366cecefa3f1c35da58f0d75458d160e60612 (patch)
treed4e4fb67271f0dd40016de4f002c64abdc1f5832 /net
parent78fe8a28fb9615c3c255702ed854f7796f266661 (diff)
parent3cfa148826e3c666da1cc2a43fbe8689e2650636 (diff)
downloadlinux-4bd366cecefa3f1c35da58f0d75458d160e60612.tar.gz
linux-4bd366cecefa3f1c35da58f0d75458d160e60612.tar.bz2
linux-4bd366cecefa3f1c35da58f0d75458d160e60612.zip
Merge branch 'net-ipv4-remove-erroneous-advancement-of-list-pointer'
Florian Westphal says: ==================== net: ipv4: remove erroneous advancement of list pointer Tariq reported a soft lockup on net-next that Mellanox was able to bisect to 2638eb8b50cf ("net: ipv4: provide __rcu annotation for ifa_list"). While reviewing above patch I found a regression when addresses have a lifetime specified. Second patch extends rtnetlink.sh to trigger crash (without first patch applied). ==================== Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'net')
-rw-r--r--net/ipv4/devinet.c3
1 files changed, 1 insertions, 2 deletions
diff --git a/net/ipv4/devinet.c b/net/ipv4/devinet.c
index 925dffa915cb..914ccc7f192a 100644
--- a/net/ipv4/devinet.c
+++ b/net/ipv4/devinet.c
@@ -745,8 +745,7 @@ static void check_lifetime(struct work_struct *work)
ifap = &ifa->ifa_dev->ifa_list;
tmp = rtnl_dereference(*ifap);
while (tmp) {
- tmp = rtnl_dereference(tmp->ifa_next);
- if (rtnl_dereference(*ifap) == ifa) {
+ if (tmp == ifa) {
inet_del_ifa(ifa->ifa_dev,
ifap, 1);
break;