Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1753165AbdLDQey (ORCPT ); Mon, 4 Dec 2017 11:34:54 -0500 Received: from shards.monkeyblade.net ([184.105.139.130]:49562 "EHLO shards.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752196AbdLDQeu (ORCPT ); Mon, 4 Dec 2017 11:34:50 -0500 Date: Mon, 04 Dec 2017 11:34:48 -0500 (EST) Message-Id: <20171204.113448.651799079717687661.davem@davemloft.net> To: linux@armlinux.org.uk Cc: arvind.yadav.cs@gmail.com, f.fainelli@gmail.com, netdev@vger.kernel.org, michal.simek@xilinx.com, linux-kernel@vger.kernel.org, opendmb@gmail.com, mkl@pengutronix.de, linux-arm-kernel@lists.infradead.org, Vladislav.Zakharov@synopsys.com, wg@grandegger.com Subject: Re: [PATCH 03/10] net: ezchip: nps_enet: Fix platform_get_irq's error checking From: David Miller In-Reply-To: <20171204162447.GT10595@n2100.armlinux.org.uk> References: <1512242782-7134-4-git-send-email-arvind.yadav.cs@gmail.com> <20171204.112049.2189145622743900344.davem@davemloft.net> <20171204162447.GT10595@n2100.armlinux.org.uk> X-Mailer: Mew version 6.7 on Emacs 24.5 / Mule 6.0 (HANACHIRUSATO) Mime-Version: 1.0 Content-Type: Text/Plain; charset=us-ascii Content-Transfer-Encoding: 7bit X-Greylist: Sender succeeded SMTP AUTH, not delayed by milter-greylist-4.5.12 (shards.monkeyblade.net [149.20.54.216]); Mon, 04 Dec 2017 08:34:50 -0800 (PST) Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 1955 Lines: 47 From: Russell King - ARM Linux Date: Mon, 4 Dec 2017 16:24:47 +0000 > On Mon, Dec 04, 2017 at 11:20:49AM -0500, David Miller wrote: >> From: Arvind Yadav >> Date: Sun, 3 Dec 2017 00:56:15 +0530 >> >> > The platform_get_irq() function returns negative if an error occurs. >> > zero or positive number on success. platform_get_irq() error checking >> > for zero is not correct. And remove unnecessary check for free_netdev(). >> > >> > Signed-off-by: Arvind Yadav >> > --- >> > drivers/net/ethernet/ezchip/nps_enet.c | 7 +++---- >> > 1 file changed, 3 insertions(+), 4 deletions(-) >> > >> > diff --git a/drivers/net/ethernet/ezchip/nps_enet.c b/drivers/net/ethernet/ezchip/nps_enet.c >> > index 659f1ad..82dc6d0 100644 >> > --- a/drivers/net/ethernet/ezchip/nps_enet.c >> > +++ b/drivers/net/ethernet/ezchip/nps_enet.c >> > @@ -623,9 +623,9 @@ static s32 nps_enet_probe(struct platform_device *pdev) >> > >> > /* Get IRQ number */ >> > priv->irq = platform_get_irq(pdev, 0); >> > - if (!priv->irq) { >> > + if (priv->irq <= 0) { >> > dev_err(dev, "failed to retrieve value from device tree\n"); >> > - err = -ENODEV; >> > + err = priv->irq ? priv->irq : -ENODEV; >> >> If platform_get_irq() returns "zero or positive number on success" then this >> test is wrong and should be "if (priv->irq < 0)" >> >> Also, this series is a mix of different kinds of changes. >> >> Please separate out the platform IRQ error checking and just submit exactly >> those changes as a patch series. >> >> The other bug fixes should be submitted outside of those changes since they >> are unrelated. > > The issue of whether IRQ 0 is valid or not has been covered several times > by Linus, and the result is that it is deemed by Linus that IRQ 0 is not > a valid interrupt. Then either platform_get_irq() as defined or this commit message (or both) are wrong.