Re: [PATCH net v3] i40e: fix the panic when running bpf in xdpdrv mode

From: Jesse Brandeburg
Date: Wed Apr 14 2021 - 22:06:56 EST


kerneljasonxing@xxxxxxxxx wrote:

> From: Jason Xing <xingwanli@xxxxxxxxxxxx>
>
> Fix this panic by adding more rules to calculate the value of @rss_size_max
> which could be used in allocating the queues when bpf is loaded, which,
> however, could cause the failure and then trigger the NULL pointer of
> vsi->rx_rings. Prio to this fix, the machine doesn't care about how many
> cpus are online and then allocates 256 queues on the machine with 32 cpus
> online actually.
>
> Once the load of bpf begins, the log will go like this "failed to get
> tracking for 256 queues for VSI 0 err -12" and this "setup of MAIN VSI
> failed".
>
> Thus, I attach the key information of the crash-log here.
>
> BUG: unable to handle kernel NULL pointer dereference at
> 0000000000000000
> RIP: 0010:i40e_xdp+0xdd/0x1b0 [i40e]
> Call Trace:
> [2160294.717292] ? i40e_reconfig_rss_queues+0x170/0x170 [i40e]
> [2160294.717666] dev_xdp_install+0x4f/0x70
> [2160294.718036] dev_change_xdp_fd+0x11f/0x230
> [2160294.718380] ? dev_disable_lro+0xe0/0xe0
> [2160294.718705] do_setlink+0xac7/0xe70
> [2160294.719035] ? __nla_parse+0xed/0x120
> [2160294.719365] rtnl_newlink+0x73b/0x860
>
> Fixes: 41c445ff0f48 ("i40e: main driver core")
> Co-developed-by: Shujin Li <lishujin@xxxxxxxxxxxx>
> Signed-off-by: Shujin Li <lishujin@xxxxxxxxxxxx>
> Signed-off-by: Jason Xing <xingwanli@xxxxxxxxxxxx>

Reviewed-by: Jesse Brandeburg <jesse.brandeburg@xxxxxxxxx>

@Jakub/@DaveM - feel free to apply this directly.