Thread (6 messages) 6 messages, 3 authors, 3d ago

Re: [PATCH net v3 2/2] net: sxgbe: check descriptor ring allocation failures

From: Vadim Fedorenko <vadim.fedorenko@linux.dev>
Date: 2026-07-23 10:12:07

On 23/07/2026 03:18, Chenguang Zhao wrote:
quoted hunk ↗ jump to hunk
From: Chenguang Zhao <redacted>

sxgbe_open() ignores the return value of init_dma_desc_rings() and
continues to program DMA with invalid ring addresses when allocation
fails. Check the return value and disconnect the PHY on failure.

Fixes: 1edb9ca69e8a ("net: sxgbe: add basic framework for Samsung 10Gb ethernet driver")
Signed-off-by: Chenguang Zhao <redacted>
---
  drivers/net/ethernet/samsung/sxgbe/sxgbe_main.c | 5 ++++-
  1 file changed, 4 insertions(+), 1 deletion(-)
diff --git a/drivers/net/ethernet/samsung/sxgbe/sxgbe_main.c b/drivers/net/ethernet/samsung/sxgbe/sxgbe_main.c
index 9b48a587d5c2..70cf3619555f 100644
--- a/drivers/net/ethernet/samsung/sxgbe/sxgbe_main.c
+++ b/drivers/net/ethernet/samsung/sxgbe/sxgbe_main.c
@@ -1078,7 +1078,9 @@ static int sxgbe_open(struct net_device *dev)
  	priv->dma_buf_sz = SXGBE_ALIGN(DMA_BUFFER_SIZE);
  	priv->tx_tc = TC_DEFAULT;
  	priv->rx_tc = TC_DEFAULT;
-	init_dma_desc_rings(dev);
+	ret = init_dma_desc_rings(dev);
+	if (ret)
+		goto init_phy_error;
  
  	/* DMA initialization and SW reset */
  	ret = sxgbe_init_dma_engine(priv);
@@ -1187,6 +1189,7 @@ static int sxgbe_open(struct net_device *dev)
  
  init_error:
  	free_dma_desc_resources(priv);
+init_phy_error:
nit: better to name it init_dma_error
  	if (dev->phydev)
  		phy_disconnect(dev->phydev);
  phy_error:
Reviewed-by: Vadim Fedorenko <vadim.fedorenko@linux.dev>
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help