Subject: Re: [PATCH v2 net-next 2/3] pfcp: Convert pfcp_net_exit() to ->exit_rtnl().

From: Jakub Kicinski <[email-masked]>
Date: Thu, 24 Apr 2025 15:24:10 -0700

On Wed, 23 Apr 2025 19:23:28 -0700 Kuniyuki Iwashima wrote:
> > > I guess it was broken recently ?  at least I didn't see null-deref
> > > while testing ffc90e9ca61b ("pfcp: Destroy device along with udp
> > > socket's netns dismantle.").  
> > 
> > Not sure, nothing seems to have changed since?  
> 
> It's been broken since the first commit of pfcp, but the bug seems
> to be exposed recently by the commit below, which changed the per-cpu
> variable section address from 0 to relative address.
> 
>   $ git bisect good
>   9d7de2aa8b41407bc96d89a80dc1fd637d389d42 is the first bad commit
>   commit 9d7de2aa8b41407bc96d89a80dc1fd637d389d42
>   Author: Brian Gerst <[email-masked]>
>   Date:   Thu Jan 23 14:07:40 2025 -0500
> 
>       x86/percpu/64: Use relative percpu offsets
> 
> Looks like before this commit 0 was a valid per-cpu variable address
> on x86, and that's why accessing per_cpu_ptr(NULL, cpu) was handled
> (im)properly.

Interesting! I guess in most cases, then, we'd access random data
and just show crazy interface stats prior to that commit?

> The fix is one-liner assigning pcpu_stat_type

Or remove the ndo, and re-add in net-next cause I don't see any actual
stats being counted.

> but no one have used > pfcp for the recent 3 months and haven't
> noticed the wrong stats nor used stats for a year.
> 
> Do we want to fix it or remove ? :)

That would be very pleasant indeed :) Let me answer in the other
sub-thread..