Messages in this thread Patch in this message | | | From | Jiasheng Jiang <> | Subject | [PATCH v4] drivers: net: smc911x: Check for error irq | Date | Fri, 24 Dec 2021 09:40:41 +0800 |
| |
As platform_get_irq() could fail and return error irq number. And the error irq will finally cause the failure of the request_irq(). Consider that platform_get_irq() can now in certain cases return -EPROBE_DEFER, and the consequences of letting request_irq() effectively convert that into -EINVAL, even at probe time rather than later on. So it might be better to check just now.
Fixes: ae150435b59e ("smsc: Move the SMC (SMSC) drivers") Signed-off-by: Jiasheng Jiang <jiasheng@iscas.ac.cn> --- Changlog:
v3 -> v4
*Change 1. Using error varaible to check. *Change 2. Fix commit message. *Change 3. Refine commit message. --- drivers/net/ethernet/smsc/smc911x.c | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-)
diff --git a/drivers/net/ethernet/smsc/smc911x.c b/drivers/net/ethernet/smsc/smc911x.c index 22cdbf12c823..9470d9c07fed 100644 --- a/drivers/net/ethernet/smsc/smc911x.c +++ b/drivers/net/ethernet/smsc/smc911x.c @@ -2069,7 +2069,12 @@ static int smc911x_drv_probe(struct platform_device *pdev) SET_NETDEV_DEV(ndev, &pdev->dev); ndev->dma = (unsigned char)-1; - ndev->irq = platform_get_irq(pdev, 0); + + ret = platform_get_irq(pdev, 0); + if (ret < 0) + goto release_both; + ndev->irq = ret; + lp = netdev_priv(ndev); lp->netdev = ndev; #ifdef SMC_DYNAMIC_BUS_CONFIG -- 2.25.1
| |