Re: [PATCH net v1] mlxbf_gige: disable RX filters until RX path initialized

From: Simon Horman
Date: Mon Aug 12 2024 - 06:24:48 EST


On Fri, Aug 09, 2024 at 12:36:12PM -0400, David Thompson wrote:
> A recent change to the driver exposed a bug where the MAC RX
> filters (unicast MAC, broadcast MAC, and multicast MAC) are
> configured and enabled before the RX path is fully initialized.
> The result of this bug is that after the PHY is started packets
> that match these MAC RX filters start to flow into the RX FIFO.
> And then, after rx_init() is completed, these packets will go
> into the driver RX ring as well. If enough packets are received
> to fill the RX ring (default size is 128 packets) before the call
> to request_irq() completes, the driver RX function becomes stuck.
>
> This bug is intermittent but is most likely to be seen where the
> oob_net0 interface is connected to a busy network with lots of
> broadcast and multicast traffic.
>
> All the MAC RX filters must be disabled until the RX path is ready,
> i.e. all initialization is done and all the IRQs are installed.
>
> Fixes: f7442a634ac0 ("mlxbf_gige: call request_irq() after NAPI initialized")
> Reviewed-by: Asmaa Mnebhi <asmaa@xxxxxxxxxx>
> Signed-off-by: David Thompson <davthompson@xxxxxxxxxx>

Reviewed-by: Simon Horman <horms@xxxxxxxxxx>