Subject: Re: [PATCH net v4 2/2] arp: switch to dev_getbyhwaddr() in arp_req_set_public()

From: Jakub Kicinski <[email-masked]>
Date: Tue, 18 Feb 2025 06:29:20 -0800

On Tue, 18 Feb 2025 01:36:30 -0800 Breno Leitao wrote:
> On Mon, Feb 17, 2025 at 04:33:44PM -0800, Jakub Kicinski wrote:
> > On Thu, 13 Feb 2025 04:42:38 -0800 Breno Leitao wrote:  
> > > The arp_req_set_public() function is called with the rtnl lock held,
> > > which provides enough synchronization protection. This makes the RCU
> > > variant of dev_getbyhwaddr() unnecessary. Switch to using the simpler
> > > dev_getbyhwaddr() function since we already have the required rtnl
> > > locking.
> > > 
> > > This change helps maintain consistency in the networking code by using
> > > the appropriate helper function for the existing locking context.  
> > 
> > I think you should make it clearer whether this fixes a splat with
> > PROVE_RCU_LIST=y  
> 
> This one doesn't fix the splat in fact, since rtnl lock was held, and it
> is moving from dev_getbyhwaddr_rcu() to dev_getbyhwaddr(), since rtnl
> lock was held.

Are you sure? I don't see the RCU lock being taken on the path that
ends up here. arp_ioctl() -> arp_req_set() -> arp_req_set_public()