Subject: Re: [PATCH net-next] genetlink: fix policy dump for dumps

From: Leon Romanovsky <[email-masked]>
Date: Wed, 9 Nov 2022 19:46:34 +0200

On Tue, Nov 08, 2022 at 12:40:41PM -0800, Jakub Kicinski wrote:
> Jonathan reports crashes when running net-next in Meta's fleet.

I experience these crashes too.

> Stats collection uses ethtool -I which does a per-op policy dump
> to check if stats are supported. We don't initialize the dumpit
> information if doit succeeds due to evaluation short-circuiting.
> 
> The crash may look like this:
> 
>    BUG: kernel NULL pointer dereference, address: 0000000000000cc0
>    RIP: 0010:netlink_policy_dump_add_policy+0x174/0x2a0
>      ctrl_dumppolicy_start+0x19f/0x2f0
>      genl_start+0xe7/0x140
> 
> Or we may trigger a warning:
> 
>    WARNING: CPU: 1 PID: 785 at net/netlink/policy.c:87 netlink_policy_dump_get_policy_idx+0x79/0x80
>    RIP: 0010:netlink_policy_dump_get_policy_idx+0x79/0x80
>      ctrl_dumppolicy_put_op+0x214/0x360
> 
> depending on what garbage we pick up from the stack.
> 
> Reported-by: Jonathan Lemon <[email-masked]>
> Fixes: 26588edbef60 ("genetlink: support split policies in ctrl_dumppolicy_put_op()")
> Signed-off-by: Jakub Kicinski <[email-masked]>
> ---
> CC: [email-masked]
> ---
>  net/netlink/genetlink.c | 12 ++++++------
>  1 file changed, 6 insertions(+), 6 deletions(-)

I added your updated patch to my CI run. Unfortunately, the regression
system is overloaded due to nightly regression so won't be able to get
results in sensible time frame.

Thanks