mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
synced 2026-08-30 11:03:07 -04:00
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>
This commit is contained in:
committed by
Jakub Kicinski
parent
42310a2438
commit
1df10cef2d
@@ -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 @@ static int sxgbe_platform_probe(struct platform_device *pdev)
|
||||
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;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user