net: wan: lapbether.c: Use built-in RCU list checking
authorMadhuparna Bhowmik <madhuparnabhowmik04@gmail.com>
Wed, 15 Jan 2020 11:41:01 +0000 (17:11 +0530)
committerDavid S. Miller <davem@davemloft.net>
Thu, 16 Jan 2020 13:30:52 +0000 (14:30 +0100)
The only callers of the function lapbeth_get_x25_dev()
are lapbeth_rcv() and lapbeth_device_event().

lapbeth_rcv() uses rcu_read_lock() whereas lapbeth_device_event()
is called with RTNL held (As mentioned in the comments).

Therefore, pass lockdep_rtnl_is_held() as cond argument in
list_for_each_entry_rcu();

Signed-off-by: Madhuparna Bhowmik <madhuparnabhowmik04@gmail.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/wan/lapbether.c

index 0f1217b..e30d91a 100644 (file)
@@ -64,7 +64,7 @@ static struct lapbethdev *lapbeth_get_x25_dev(struct net_device *dev)
 {
        struct lapbethdev *lapbeth;
 
-       list_for_each_entry_rcu(lapbeth, &lapbeth_devices, node) {
+       list_for_each_entry_rcu(lapbeth, &lapbeth_devices, node, lockdep_rtnl_is_held()) {
                if (lapbeth->ethdev == dev) 
                        return lapbeth;
        }