• Eric Dumazet's avatar
    net: fix dev_seq_next() · ccf43438
    Eric Dumazet authored
    Commit c6d14c84 (net: Introduce for_each_netdev_rcu() iterator)
    added a race in dev_seq_next().
    
    The rcu_dereference() call should be done _before_ testing the end of
    list, or we might return a wrong net_device if a concurrent thread
    changes net_device list under us.
    
    Note : discovered thanks to a sparse warning :
    
    net/core/dev.c:3919:9: error: incompatible types in comparison expression
    (different address spaces)
    Signed-off-by: default avatarEric Dumazet <eric.dumazet@gmail.com>
    CC: Paul E. McKenney <paulmck@linux.vnet.ibm.com>
    Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
    ccf43438
dev.c 156 KB