Re: [PATCH v2] usb: gadget: u_ether: Use __netif_rx() in rx_callback()

From: Sebastian Andrzej Siewior
Date: Tue Sep 17 2024 - 10:33:48 EST


On 2024-09-17 13:19:25 [+0200], Hubert Wiśniewski wrote:
> netif_rx() now disables bottom halves, which causes the USB gadget to be
> unable to receive frames if the interface is not brought up quickly enough
> after being created by the driver (a bug confirmed on AM3352 SoC).
>
> Replacing netif_rx() with __netif_rx() restores the old behavior and fixes
> the bug. This can be done since rx_callback() is called from the interrupt
> context.
>
> Fixes: baebdf48c360 ("net: dev: Makes sure netif_rx() can be invoked in any context.")
> Signed-off-by: Hubert Wiśniewski <hubert.wisniewski.25632@xxxxxxxxx>

This does not look right.
Can you add a backtrace and check with lockdep enabled?
netif_rx() should not disable BH if invoked from an interrupt.


Sebastian