summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChenguang Zhao <zhaochenguang@kylinos.cn>2026-07-17 17:14:23 +0800
committerJakub Kicinski <kuba@kernel.org>2026-07-22 15:05:11 -0700
commit1df10cef2d1e7f9f2fb7eddb67fc70d3abf101f9 (patch)
tree50b66288e38bc395c9637e4bebe02b26f3878ee2
parent42310a24389c1bdda82e4c30750a6b72e98238d1 (diff)
downloadlinux-next-1df10cef2d1e7f9f2fb7eddb67fc70d3abf101f9.tar.gz
linux-next-1df10cef2d1e7f9f2fb7eddb67fc70d3abf101f9.zip
net: sxgbe: fix null pointer dereference in probe error path
The platform drvdata is not set until all IRQs have been mapped, so the local net_device pointer is NULL when IRQ mapping fails. Remove the device allocated by sxgbe_drv_probe() through priv instead. Cc: stable+noautosel@kernel.org # untested fix to unlikely driver error path Signed-off-by: Chenguang Zhao <zhaochenguang@kylinos.cn> Reviewed-by: Andrew Lunn <andrew@lunn.ch> Link: https://patch.msgid.link/20260717091423.1557737-1-chenguang.zhao@linux.dev Signed-off-by: Jakub Kicinski <kuba@kernel.org>
-rw-r--r--drivers/net/ethernet/samsung/sxgbe/sxgbe_platform.c3
1 files changed, 1 insertions, 2 deletions
diff --git a/drivers/net/ethernet/samsung/sxgbe/sxgbe_platform.c b/drivers/net/ethernet/samsung/sxgbe/sxgbe_platform.c
index 2eccc7617507..e4701b29e1a0 100644
--- a/drivers/net/ethernet/samsung/sxgbe/sxgbe_platform.c
+++ b/drivers/net/ethernet/samsung/sxgbe/sxgbe_platform.c
@@ -82,7 +82,6 @@ static int sxgbe_platform_probe(struct platform_device *pdev)
void __iomem *addr;
struct sxgbe_priv_data *priv = NULL;
struct sxgbe_plat_data *plat_dat = NULL;
- struct net_device *ndev = platform_get_drvdata(pdev);
struct device_node *node = dev->of_node;
/* Get memory resource */
@@ -158,7 +157,7 @@ err_tx_irq_unmap:
irq_dispose_mapping(priv->txq[i]->irq_no);
irq_dispose_mapping(priv->irq);
err_drv_remove:
- sxgbe_drv_remove(ndev);
+ sxgbe_drv_remove(priv->dev);
err_out:
return -ENODEV;
}