[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-ID: <2a4e7ff2-8e75-43a3-99fa-20a525009347@amd.com>
Date: Tue, 16 Dec 2025 20:30:21 +0530
From: Shyam Sundar S K <Shyam-sundar.S-k@....com>
To: Raju Rangoju <Raju.Rangoju@....com>, netdev@...r.kernel.org
Cc: pabeni@...hat.com, kuba@...nel.org, edumazet@...gle.com,
davem@...emloft.net, andrew+netdev@...n.ch
Subject: Re: [PATCH net] amd-xgbe: reset retries and mode on RX adapt failures
On 12/15/2025 20:47, Raju Rangoju wrote:
> During the stress tests, early RX adaptation handshakes can fail, such
> as missing the RX_ADAPT ACK or not receiving a coefficient update before
> block lock is established. Continuing to retry RX adaptation in this
> state is often ineffective if the current mode selection is not viable.
>
> Resetting the RX adaptation retry counter when an RX_ADAPT request fails
> to receive ACK or a coefficient update prior to block lock, and clearing
> mode_set so the next bring-up performs a fresh mode selection rather
> than looping on a likely invalid configuration.
>
> Fixes: 4f3b20bfbb75 ("amd-xgbe: add support for rx-adaptation")
> Signed-off-by: Raju Rangoju <Raju.Rangoju@....com>
Reviewed-by: Shyam Sundar S K <Shyam-sundar.S-k@....com>
Thanks,
Shyam
> ---
> drivers/net/ethernet/amd/xgbe/xgbe-phy-v2.c | 2 ++
> 1 file changed, 2 insertions(+)
>
> diff --git a/drivers/net/ethernet/amd/xgbe/xgbe-phy-v2.c b/drivers/net/ethernet/amd/xgbe/xgbe-phy-v2.c
> index a68757e8fd22..c63ddb12237e 100644
> --- a/drivers/net/ethernet/amd/xgbe/xgbe-phy-v2.c
> +++ b/drivers/net/ethernet/amd/xgbe/xgbe-phy-v2.c
> @@ -1928,6 +1928,7 @@ static void xgbe_set_rx_adap_mode(struct xgbe_prv_data *pdata,
> {
> if (pdata->rx_adapt_retries++ >= MAX_RX_ADAPT_RETRIES) {
> pdata->rx_adapt_retries = 0;
> + pdata->mode_set = false;
> return;
> }
>
> @@ -1974,6 +1975,7 @@ static void xgbe_rx_adaptation(struct xgbe_prv_data *pdata)
> */
> netif_dbg(pdata, link, pdata->netdev, "Block_lock done");
> pdata->rx_adapt_done = true;
> + pdata->rx_adapt_retries = 0;
> pdata->mode_set = false;
> return;
> }
Powered by blists - more mailing lists