2020-01-15 11:42:23

by Madhuparna Bhowmik

[permalink] [raw]
Subject: [PATCH] net: wan: lapbether.c: Use built-in RCU list checking

From: Madhuparna Bhowmik <[email protected]>

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 <[email protected]>
---
drivers/net/wan/lapbether.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/net/wan/lapbether.c b/drivers/net/wan/lapbether.c
index 0f1217b506ad..e30d91a38cfb 100644
--- a/drivers/net/wan/lapbether.c
+++ b/drivers/net/wan/lapbether.c
@@ -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;
}
--
2.17.1


2020-01-16 13:32:59

by David Miller

[permalink] [raw]
Subject: Re: [PATCH] net: wan: lapbether.c: Use built-in RCU list checking

From: [email protected]
Date: Wed, 15 Jan 2020 17:11:01 +0530

> From: Madhuparna Bhowmik <[email protected]>
>
> 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 <[email protected]>

Applied.