Message ID | 3d0aef75-06e0-45a5-a2a6-2cc4738d4143@moroto.mountain (mailing list archive) |
---|---|
State | Accepted |
Commit | ef45e8400f5bb66b03cc949f76c80e2a118447de |
Delegated to: | Netdev Maintainers |
Headers | show |
Series | [net] net: ll_temac: fix error checking of irq_of_parse_and_map() | expand |
Dan Carpenter <dan.carpenter@linaro.org> writes: > Most kernel functions return negative error codes but some irq functions > return zero on error. In this code irq_of_parse_and_map(), returns zero > and platform_get_irq() returns negative error codes. We need to handle > both cases appropriately. > > Fixes: 8425c41d1ef7 ("net: ll_temac: Extend support to non-device-tree platforms") > Signed-off-by: Dan Carpenter <dan.carpenter@linaro.org> Acked-by: Esben Haabendal <esben@geanix.com> > --- > drivers/net/ethernet/xilinx/ll_temac_main.c | 12 ++++++++---- > 1 file changed, 8 insertions(+), 4 deletions(-) > > diff --git a/drivers/net/ethernet/xilinx/ll_temac_main.c b/drivers/net/ethernet/xilinx/ll_temac_main.c > index e0ac1bcd9925..49f303353ecb 100644 > --- a/drivers/net/ethernet/xilinx/ll_temac_main.c > +++ b/drivers/net/ethernet/xilinx/ll_temac_main.c > @@ -1567,12 +1567,16 @@ static int temac_probe(struct platform_device *pdev) > } > > /* Error handle returned DMA RX and TX interrupts */ > - if (lp->rx_irq < 0) > - return dev_err_probe(&pdev->dev, lp->rx_irq, > + if (lp->rx_irq <= 0) { > + rc = lp->rx_irq ?: -EINVAL; > + return dev_err_probe(&pdev->dev, rc, > "could not get DMA RX irq\n"); > - if (lp->tx_irq < 0) > - return dev_err_probe(&pdev->dev, lp->tx_irq, > + } > + if (lp->tx_irq <= 0) { > + rc = lp->tx_irq ?: -EINVAL; > + return dev_err_probe(&pdev->dev, rc, > "could not get DMA TX irq\n"); > + } > > if (temac_np) { > /* Retrieve the MAC address */
Reviewed-by: Yang Yingliang <yangyingliang@huawei.com> On 2023/7/31 15:42, Dan Carpenter wrote: > Most kernel functions return negative error codes but some irq functions > return zero on error. In this code irq_of_parse_and_map(), returns zero > and platform_get_irq() returns negative error codes. We need to handle > both cases appropriately. > > Fixes: 8425c41d1ef7 ("net: ll_temac: Extend support to non-device-tree platforms") > Signed-off-by: Dan Carpenter <dan.carpenter@linaro.org> > --- > drivers/net/ethernet/xilinx/ll_temac_main.c | 12 ++++++++---- > 1 file changed, 8 insertions(+), 4 deletions(-) > > diff --git a/drivers/net/ethernet/xilinx/ll_temac_main.c b/drivers/net/ethernet/xilinx/ll_temac_main.c > index e0ac1bcd9925..49f303353ecb 100644 > --- a/drivers/net/ethernet/xilinx/ll_temac_main.c > +++ b/drivers/net/ethernet/xilinx/ll_temac_main.c > @@ -1567,12 +1567,16 @@ static int temac_probe(struct platform_device *pdev) > } > > /* Error handle returned DMA RX and TX interrupts */ > - if (lp->rx_irq < 0) > - return dev_err_probe(&pdev->dev, lp->rx_irq, > + if (lp->rx_irq <= 0) { > + rc = lp->rx_irq ?: -EINVAL; > + return dev_err_probe(&pdev->dev, rc, > "could not get DMA RX irq\n"); > - if (lp->tx_irq < 0) > - return dev_err_probe(&pdev->dev, lp->tx_irq, > + } > + if (lp->tx_irq <= 0) { > + rc = lp->tx_irq ?: -EINVAL; > + return dev_err_probe(&pdev->dev, rc, > "could not get DMA TX irq\n"); > + } > > if (temac_np) { > /* Retrieve the MAC address */
> -----Original Message----- > From: Dan Carpenter <dan.carpenter@linaro.org> > Sent: Monday, July 31, 2023 1:13 PM > To: Esben Haabendal <esben@geanix.com> > Cc: David S. Miller <davem@davemloft.net>; Eric Dumazet > <edumazet@google.com>; Jakub Kicinski <kuba@kernel.org>; Paolo Abeni > <pabeni@redhat.com>; Simek, Michal <michal.simek@amd.com>; Katakam, > Harini <harini.katakam@amd.com>; Haoyue Xu <xuhaoyue1@hisilicon.com>; > huangjunxian <huangjunxian6@hisilicon.com>; Yang Yingliang > <yangyingliang@huawei.com>; Rob Herring <robh@kernel.org>; > netdev@vger.kernel.org; kernel-janitors@vger.kernel.org > Subject: [PATCH net] net: ll_temac: fix error checking of > irq_of_parse_and_map() > > Most kernel functions return negative error codes but some irq functions > return zero on error. In this code irq_of_parse_and_map(), returns zero > and platform_get_irq() returns negative error codes. We need to handle > both cases appropriately. > > Fixes: 8425c41d1ef7 ("net: ll_temac: Extend support to non-device-tree > platforms") > Signed-off-by: Dan Carpenter <dan.carpenter@linaro.org> Thanks, Reviewed-by: Harini Katakam <harini.katakam@amd.com> Regards, Harini
Hello: This patch was applied to netdev/net.git (main) by Jakub Kicinski <kuba@kernel.org>: On Mon, 31 Jul 2023 10:42:32 +0300 you wrote: > Most kernel functions return negative error codes but some irq functions > return zero on error. In this code irq_of_parse_and_map(), returns zero > and platform_get_irq() returns negative error codes. We need to handle > both cases appropriately. > > Fixes: 8425c41d1ef7 ("net: ll_temac: Extend support to non-device-tree platforms") > Signed-off-by: Dan Carpenter <dan.carpenter@linaro.org> > > [...] Here is the summary with links: - [net] net: ll_temac: fix error checking of irq_of_parse_and_map() https://git.kernel.org/netdev/net/c/ef45e8400f5b You are awesome, thank you!
diff --git a/drivers/net/ethernet/xilinx/ll_temac_main.c b/drivers/net/ethernet/xilinx/ll_temac_main.c index e0ac1bcd9925..49f303353ecb 100644 --- a/drivers/net/ethernet/xilinx/ll_temac_main.c +++ b/drivers/net/ethernet/xilinx/ll_temac_main.c @@ -1567,12 +1567,16 @@ static int temac_probe(struct platform_device *pdev) } /* Error handle returned DMA RX and TX interrupts */ - if (lp->rx_irq < 0) - return dev_err_probe(&pdev->dev, lp->rx_irq, + if (lp->rx_irq <= 0) { + rc = lp->rx_irq ?: -EINVAL; + return dev_err_probe(&pdev->dev, rc, "could not get DMA RX irq\n"); - if (lp->tx_irq < 0) - return dev_err_probe(&pdev->dev, lp->tx_irq, + } + if (lp->tx_irq <= 0) { + rc = lp->tx_irq ?: -EINVAL; + return dev_err_probe(&pdev->dev, rc, "could not get DMA TX irq\n"); + } if (temac_np) { /* Retrieve the MAC address */
Most kernel functions return negative error codes but some irq functions return zero on error. In this code irq_of_parse_and_map(), returns zero and platform_get_irq() returns negative error codes. We need to handle both cases appropriately. Fixes: 8425c41d1ef7 ("net: ll_temac: Extend support to non-device-tree platforms") Signed-off-by: Dan Carpenter <dan.carpenter@linaro.org> --- drivers/net/ethernet/xilinx/ll_temac_main.c | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-)