lkml.org 
[lkml]   [2022]   [Aug]   [29]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 5.15 084/136] net: Fix data-races around sysctl_fb_tunnels_only_for_init_net.
    Date
    From: Kuniyuki Iwashima <kuniyu@amazon.com>

    [ Upstream commit af67508ea6cbf0e4ea27f8120056fa2efce127dd ]

    While reading sysctl_fb_tunnels_only_for_init_net, it can be changed
    concurrently. Thus, we need to add READ_ONCE() to its readers.

    Fixes: 79134e6ce2c9 ("net: do not create fallback tunnels for non-default namespaces")
    Signed-off-by: Kuniyuki Iwashima <kuniyu@amazon.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Sasha Levin <sashal@kernel.org>
    ---
    include/linux/netdevice.h | 11 ++++++++---
    1 file changed, 8 insertions(+), 3 deletions(-)

    diff --git a/include/linux/netdevice.h b/include/linux/netdevice.h
    index f8d46dc62d658..f9ed41ca7ac6d 100644
    --- a/include/linux/netdevice.h
    +++ b/include/linux/netdevice.h
    @@ -626,9 +626,14 @@ extern int sysctl_devconf_inherit_init_net;
    */
    static inline bool net_has_fallback_tunnels(const struct net *net)
    {
    - return !IS_ENABLED(CONFIG_SYSCTL) ||
    - !sysctl_fb_tunnels_only_for_init_net ||
    - (net == &init_net && sysctl_fb_tunnels_only_for_init_net == 1);
    +#if IS_ENABLED(CONFIG_SYSCTL)
    + int fb_tunnels_only_for_init_net = READ_ONCE(sysctl_fb_tunnels_only_for_init_net);
    +
    + return !fb_tunnels_only_for_init_net ||
    + (net_eq(net, &init_net) && fb_tunnels_only_for_init_net == 1);
    +#else
    + return true;
    +#endif
    }

    static inline int netdev_queue_numa_node_read(const struct netdev_queue *q)
    --
    2.35.1


    \
     
     \ /
      Last update: 2022-08-29 13:40    [W:2.144 / U:0.024 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site