Re: [PATCH net] idpf: reset mb_wait_count once the mailbox is up

From: Simon Horman

Date: Fri Nov 13 2026 - 16:04:18 EST


On Mon, Nov 09, 2026 at 06:43:27AM -0800, Breno Leitao wrote:
> idpf_vc_core_init() retries a failed virtchnl version and capabilities
> handshake up to IDPF_MB_MAX_ERR times before it gives up on the device.
> Each failure increments adapter->mb_wait_count, but nothing ever clears
> it, so the limit is shared by every initialization in the lifetime of
> the adapter, including the one done by each reset.
>
> A device that fails the first handshake after a reset, and then
> recovers on the retry, leaves one count behind per reset. Once 20 have
> accumulated, the next failure is final, and the device stays down until
> the driver is reloaded. This is seen in Meta's fleet on hosts with
> recurring Tx timeouts:
>
> [ 2176.496801] idpf 0016:01:00.0 eth1: Detected Tx timeout: Count 21, Queue 11
> [ 2176.508763] idpf 0016:01:00.0: Device HW Reset initiated
> [ 2237.412541] idpf 0016:01:00.0: Transaction timed-out (op:1 cookie:9800 vc_op:1 salt:98 timeout:60000ms)
> [ 2237.412578] idpf 0016:01:00.0: Failed to establish mailbox communications with hardware
>
> Clear mb_wait_count once the handshake succeeds, so the limit applies
> to consecutive failures only.
>
> Fixes: 4930fbf419a7 ("idpf: add core init and interrupt request")
> Signed-off-by: Breno Leitao <leitao@xxxxxxxxxx>

Reviewed-by: Simon Horman <horms@xxxxxxxxxx>

Tony, maybe this should be routed via the iwl tree?