ipv6: annotate data-races around cnf.mtu6
[linux-block.git] / net / ipv6 / route.c
index 707d65bc9c0e5e9b2900063f0ac86c3c5e299088..66c685b0b6199fee3bc39768eab5a6fb831bd2f5 100644 (file)
@@ -1596,7 +1596,7 @@ static unsigned int fib6_mtu(const struct fib6_result *res)
 
                rcu_read_lock();
                idev = __in6_dev_get(dev);
-               mtu = idev->cnf.mtu6;
+               mtu = READ_ONCE(idev->cnf.mtu6);
                rcu_read_unlock();
        }
 
@@ -3249,8 +3249,8 @@ u32 ip6_mtu_from_fib6(const struct fib6_result *res,
 
                mtu = IPV6_MIN_MTU;
                idev = __in6_dev_get(dev);
-               if (idev && idev->cnf.mtu6 > mtu)
-                       mtu = idev->cnf.mtu6;
+               if (idev)
+                       mtu = max_t(u32, mtu, READ_ONCE(idev->cnf.mtu6));
        }
 
        mtu = min_t(unsigned int, mtu, IP6_MAX_MTU);