Re: [PATCH net v4 2/2] arp: switch to dev_getbyhwaddr() in arp_req_set_public()
From: Breno Leitao
Date: Tue Feb 18 2025 - 11:32:27 EST
Hello Jakub,
On Tue, Feb 18, 2025 at 06:29:20AM -0800, Jakub Kicinski wrote:
> 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()
Ack, this will fix the PROVE_RCU_LIST issue.