On Fri, 12 Jul 2024 04:53:25 -0700 Breno Leitao wrote:
> After the commit bdacf3e34945 ("net: Use nested-BH locking for
> napi_alloc_cache.") was merged, the following warning began to appear:
> 
>        WARNING: CPU: 5 PID: 1 at net/core/skbuff.c:1451 
> napi_skb_cache_put+0x82/0x4b0
> 
>         __warn+0x12f/0x340
>         napi_skb_cache_put+0x82/0x4b0
>         napi_skb_cache_put+0x82/0x4b0
>         report_bug+0x165/0x370
>         handle_bug+0x3d/0x80
>         exc_invalid_op+0x1a/0x50
>         asm_exc_invalid_op+0x1a/0x20
>         __free_old_xmit+0x1c8/0x510
>         napi_skb_cache_put+0x82/0x4b0
>         __free_old_xmit+0x1c8/0x510
>         __free_old_xmit+0x1c8/0x510
>         __pfx___free_old_xmit+0x10/0x10
> 
> The issue arises because virtio is assuming it's running in NAPI context
> even when it's not, such as in the netpoll case.
> 
> To resolve this, modify virtnet_poll_tx() to only set NAPI when budget
> is available. Same for virtnet_poll_cleantx(), which always assumed that
> it was in a NAPI context.
> 
> Fixes: df133f3f9625 ("virtio_net: bulk free tx skbs")
> Suggested-by: Jakub Kicinski <k...@kernel.org>
> Signed-off-by: Breno Leitao <lei...@debian.org>

Reviewed-by: Jakub Kicinski <k...@kernel.org>

Reply via email to