mirror of
https://github.com/torvalds/linux.git
synced 2026-07-27 09:36:22 +02:00
net: emac: Fix NULL pointer dereference in emac_probe
Move devm_request_irq() after devm_platform_ioremap_resource() so that
dev->emacp is mapped before the interrupt handler can fire. An early
interrupt hitting emac_irq() would dereference the NULL dev->emacp and
crash.
Also remove redundant error message. devm_platform_ioremap_resource()
already returns an error message with dev_err_probe().
Fixes: dcc34ef7c8 ("net: ibm: emac: manage emac_irq with devm")
Signed-off-by: Rosen Penev <rosenp@gmail.com>
Reviewed-by: Andrew Lunn <andrew@lunn.ch>
Link: https://patch.msgid.link/20260618023405.415644-1-rosenp@gmail.com
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
This commit is contained in:
parent
617fb6fa9c
commit
f623d38fe6
|
|
@ -3044,6 +3044,12 @@ static int emac_probe(struct platform_device *ofdev)
|
|||
if (err)
|
||||
goto err_gone;
|
||||
|
||||
dev->emacp = devm_platform_ioremap_resource(ofdev, 0);
|
||||
if (IS_ERR(dev->emacp)) {
|
||||
err = PTR_ERR(dev->emacp);
|
||||
goto err_gone;
|
||||
}
|
||||
|
||||
/* Setup error IRQ handler */
|
||||
dev->emac_irq = platform_get_irq(ofdev, 0);
|
||||
if (dev->emac_irq < 0) {
|
||||
|
|
@ -3061,13 +3067,6 @@ static int emac_probe(struct platform_device *ofdev)
|
|||
|
||||
ndev->irq = dev->emac_irq;
|
||||
|
||||
dev->emacp = devm_platform_ioremap_resource(ofdev, 0);
|
||||
if (IS_ERR(dev->emacp)) {
|
||||
dev_err(&ofdev->dev, "can't map device registers");
|
||||
err = PTR_ERR(dev->emacp);
|
||||
goto err_gone;
|
||||
}
|
||||
|
||||
/* Wait for dependent devices */
|
||||
err = emac_wait_deps(dev);
|
||||
if (err)
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user