• Toke Høiland-Jørgensen's avatar
    stmmac: Remove rcu_read_lock() around XDP program invocation · 2f1e432d
    Toke Høiland-Jørgensen authored
    The stmmac driver has rcu_read_lock()/rcu_read_unlock() pairs around XDP
    program invocations. However, the actual lifetime of the objects referred
    by the XDP program invocation is longer, all the way through to the call to
    xdp_do_flush(), making the scope of the rcu_read_lock() too small. This
    turns out to be harmless because it all happens in a single NAPI poll
    cycle (and thus under local_bh_disable()), but it makes the rcu_read_lock()
    misleading.
    
    Rather than extend the scope of the rcu_read_lock(), just get rid of it
    entirely. With the addition of RCU annotations to the XDP_REDIRECT map
    types that take bh execution into account, lockdep even understands this to
    be safe, so there's really no reason to keep it around.
    Signed-off-by: default avatarToke Høiland-Jørgensen <toke@redhat.com>
    Signed-off-by: default avatarDaniel Borkmann <daniel@iogearbox.net>
    Cc: Giuseppe Cavallaro <peppe.cavallaro@st.com>
    Cc: Alexandre Torgue <alexandre.torgue@foss.st.com>
    Cc: Jose Abreu <joabreu@synopsys.com>
    Link: https://lore.kernel.org/bpf/20210624160609.292325-19-toke@redhat.com
    2f1e432d
stmmac_main.c 196 KB