提交 644b3d5e 编写于 作者: F Florian Fainelli 提交者: Zheng Zengkai

net: bcmgenet: Check for Wake-on-LAN interrupt probe deferral

stable inclusion
from stable-v5.10.117
commit 9012209f435708ef4b432655ed7dd815478b5f08
category: bugfix
bugzilla: https://gitee.com/openeuler/kernel/issues/I5L66B

Reference: https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?id=9012209f435708ef4b432655ed7dd815478b5f08

--------------------------------

[ Upstream commit 6b77c066 ]

The interrupt controller supplying the Wake-on-LAN interrupt line maybe
modular on some platforms (irq-bcm7038-l1.c) and might be probed at a
later time than the GENET driver. We need to specifically check for
-EPROBE_DEFER and propagate that error to ensure that we eventually
fetch the interrupt descriptor.

Fixes: 9deb48b5 ("bcmgenet: add WOL IRQ check")
Fixes: 5b1f0e62 ("net: bcmgenet: Avoid touching non-existent interrupt")
Signed-off-by: NFlorian Fainelli <f.fainelli@gmail.com>
Reviewed-by: NStefan Wahren <stefan.wahren@i2se.com>
Link: https://lore.kernel.org/r/20220511031752.2245566-1-f.fainelli@gmail.comSigned-off-by: NPaolo Abeni <pabeni@redhat.com>
Signed-off-by: NSasha Levin <sashal@kernel.org>
Signed-off-by: NZheng Zengkai <zhengzengkai@huawei.com>
Acked-by: NXie XiuQi <xiexiuqi@huawei.com>
上级 904dc4af
...@@ -3950,6 +3950,10 @@ static int bcmgenet_probe(struct platform_device *pdev) ...@@ -3950,6 +3950,10 @@ static int bcmgenet_probe(struct platform_device *pdev)
goto err; goto err;
} }
priv->wol_irq = platform_get_irq_optional(pdev, 2); priv->wol_irq = platform_get_irq_optional(pdev, 2);
if (priv->wol_irq == -EPROBE_DEFER) {
err = priv->wol_irq;
goto err;
}
priv->base = devm_platform_ioremap_resource(pdev, 0); priv->base = devm_platform_ioremap_resource(pdev, 0);
if (IS_ERR(priv->base)) { if (IS_ERR(priv->base)) {
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册