[PATCH net] net: airoha: add RCU lock around dev_fill_forward_path

Qingfang Deng posted 1 patch 2 weeks, 4 days ago
There is a newer version of this series
drivers/net/ethernet/airoha/airoha_ppe.c | 2 ++
1 file changed, 2 insertions(+)
[PATCH net] net: airoha: add RCU lock around dev_fill_forward_path
Posted by Qingfang Deng 2 weeks, 4 days ago
Since 0417adf367a0 ("ppp: fix race conditions in ppp_fill_forward_path")
dev_fill_forward_path() should be called with RCU read lock held. This
fix was applied to net, while the Airoha flowtable commit was applied to
net-next, so it hadn't been an issue until net was merged into net-next.

Fixes: a9af709fda7e ("Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net")
Signed-off-by: Qingfang Deng <dqfext@gmail.com>
---
 drivers/net/ethernet/airoha/airoha_ppe.c | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/drivers/net/ethernet/airoha/airoha_ppe.c b/drivers/net/ethernet/airoha/airoha_ppe.c
index ec5ce41dad80..02deb739a1c7 100644
--- a/drivers/net/ethernet/airoha/airoha_ppe.c
+++ b/drivers/net/ethernet/airoha/airoha_ppe.c
@@ -227,7 +227,9 @@ static int airoha_ppe_get_wdma_info(struct net_device *dev, const u8 *addr,
 	if (!dev)
 		return -ENODEV;
 
+	rcu_read_lock();
 	err = dev_fill_forward_path(dev, addr, &stack);
+	rcu_read_unlock();
 	if (err)
 		return err;
 
-- 
2.43.0
Re: [PATCH net] net: airoha: add RCU lock around dev_fill_forward_path
Posted by Simon Horman 2 weeks, 3 days ago
On Thu, Mar 19, 2026 at 11:26:49AM +0800, Qingfang Deng wrote:
> Since 0417adf367a0 ("ppp: fix race conditions in ppp_fill_forward_path")
> dev_fill_forward_path() should be called with RCU read lock held. This
> fix was applied to net, while the Airoha flowtable commit was applied to
> net-next, so it hadn't been an issue until net was merged into net-next.
> 
> Fixes: a9af709fda7e ("Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net")
> Signed-off-by: Qingfang Deng <dqfext@gmail.com>

I understand from the patch description that the problem didn't manifest
until this merge commit. But nonetheless I don't think using
a merge commit in the Fixes tag is the best approach. For one thing,
it seems somewhat difficult to use effectively to guide backporting.

I would suggest using the flowtable commit as the fixes tag:

Fixes: a8bdd935d1dd ("net: airoha: Add wlan flowtable TX offload")

Or perhaps fixes tags for both a8bdd935d1dd and 0417adf367a0.

Flagged by AI generated code review, which also suggested citing a8bdd935d1dd.


...
Re: [PATCH net] net: airoha: add RCU lock around dev_fill_forward_path
Posted by Qingfang Deng 2 weeks, 3 days ago
On Fri, Mar 20, 2026 at 5:19 PM Simon Horman <horms@kernel.org> wrote:
> I understand from the patch description that the problem didn't manifest
> until this merge commit. But nonetheless I don't think using
> a merge commit in the Fixes tag is the best approach. For one thing,
> it seems somewhat difficult to use effectively to guide backporting.
>
> I would suggest using the flowtable commit as the fixes tag:
>
> Fixes: a8bdd935d1dd ("net: airoha: Add wlan flowtable TX offload")
>
> Or perhaps fixes tags for both a8bdd935d1dd and 0417adf367a0.
>
> Flagged by AI generated code review, which also suggested citing a8bdd935d1dd.

Okay, I'll update the tag in v2.
Re: [PATCH net] net: airoha: add RCU lock around dev_fill_forward_path
Posted by Lorenzo Bianconi 2 weeks, 4 days ago
> Since 0417adf367a0 ("ppp: fix race conditions in ppp_fill_forward_path")
> dev_fill_forward_path() should be called with RCU read lock held. This
> fix was applied to net, while the Airoha flowtable commit was applied to
> net-next, so it hadn't been an issue until net was merged into net-next.
> 
> Fixes: a9af709fda7e ("Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net")
> Signed-off-by: Qingfang Deng <dqfext@gmail.com>

Acked-by: Lorenzo Bianconi <lorenzo@kernel.org>

> ---
>  drivers/net/ethernet/airoha/airoha_ppe.c | 2 ++
>  1 file changed, 2 insertions(+)
> 
> diff --git a/drivers/net/ethernet/airoha/airoha_ppe.c b/drivers/net/ethernet/airoha/airoha_ppe.c
> index ec5ce41dad80..02deb739a1c7 100644
> --- a/drivers/net/ethernet/airoha/airoha_ppe.c
> +++ b/drivers/net/ethernet/airoha/airoha_ppe.c
> @@ -227,7 +227,9 @@ static int airoha_ppe_get_wdma_info(struct net_device *dev, const u8 *addr,
>  	if (!dev)
>  		return -ENODEV;
>  
> +	rcu_read_lock();
>  	err = dev_fill_forward_path(dev, addr, &stack);
> +	rcu_read_unlock();
>  	if (err)
>  		return err;
>  
> -- 
> 2.43.0
>