From 7a8ac49836bbc72ed24f90fecfd81a838916a7eb Mon Sep 17 00:00:00 2001 From: p-szafonimateusz Date: Tue, 3 Jun 2025 11:55:28 +0200 Subject: [PATCH] drivers/net/{e1000|igc}: do not touch RX/TX rings when link status change Do not reset RX/TX rings when link status change. This can break internal card state which is impossible to recovery. Signed-off-by: p-szafonimateusz --- drivers/net/e1000.c | 6 +----- drivers/net/igc.c | 7 ++----- 2 files changed, 3 insertions(+), 10 deletions(-) diff --git a/drivers/net/e1000.c b/drivers/net/e1000.c index 2050883ab93..4750c007e03 100644 --- a/drivers/net/e1000.c +++ b/drivers/net/e1000.c @@ -757,15 +757,11 @@ static void e1000_link_work(FAR void *arg) ninfo("Link up, status = 0x%x\n", tmp); netdev_lower_carrier_on(&priv->dev); - - /* Clear Tx and RX rings */ - - e1000_txclean(priv); - e1000_rxclean(priv); } else { ninfo("Link down\n"); + netdev_lower_carrier_off(&priv->dev); } } diff --git a/drivers/net/igc.c b/drivers/net/igc.c index 755c8172709..4da6c11af68 100644 --- a/drivers/net/igc.c +++ b/drivers/net/igc.c @@ -711,16 +711,13 @@ static void igc_link_work(FAR void *arg) if (tmp & IGC_STATUS_LU) { ninfo("Link up, status = 0x%x\n", tmp); + netdev_lower_carrier_on(&priv->dev); - - /* Clear Tx and RX rings */ - - igc_txclean(priv); - igc_rxclean(priv); } else { ninfo("Link down\n"); + netdev_lower_carrier_off(&priv->dev); } }