Subject: Re: [PATCH net v3 1/1] net: l3mdev: Reject non-L3 uppers in slave helpers

From: Ido Schimmel <[email-masked]>
Date: Mon, 20 Apr 2026 21:26:40 +0300

On Mon, Apr 20, 2026 at 02:32:08PM +0300, Ido Schimmel wrote:
> On Sun, Apr 19, 2026 at 10:53:32PM +0800, Ren Wei wrote:
> > From: Haoze Xie <[email-masked]>
> > 
> > Several l3mdev slave-side helpers resolve an upper device and then use
> > l3mdev_ops without first proving that the resolved device is still a
> > valid L3 master.
> > 
> > During slave transition, an RCU reader can transiently observe an upper
> > that is not an L3 master. Guard the affected slave-resolved paths by
> > requiring the resolved upper to still be an L3 master before using
> > l3mdev_ops, while keeping existing L3 RX handler providers intact.
> > 
> > Fixes: fdeea7be88b1 ("net: vrf: Set slave's private flag before linking")
> > Cc: [email-masked]
> > Reported-by: Yifan Wu <[email-masked]>
> > Reported-by: Juefei Pu <[email-masked]>
> > Co-developed-by: Yuan Tan <[email-masked]>
> > Signed-off-by: Yuan Tan <[email-masked]>
> > Suggested-by: Xin Liu <[email-masked]>
> > Tested-by: Haoze Xie <[email-masked]>
> > Signed-off-by: Haoze Xie <[email-masked]>
> > Signed-off-by: Ao Zhou <[email-masked]>
> 
> I think it's fine for net:
> 
> Reviewed-by: Ido Schimmel <[email-masked]>

Thought about this again. I would like to check another approach
(synchronize_net() after clearing IFF_L3MDEV_SLAVE). Will update
tomorrow.