diff mbox

[net] ravb: fix result value overwrite

Message ID 1458057136-23253-1-git-send-email-ykaneko0929@gmail.com (mailing list archive)
State Accepted
Delegated to: Geert Uytterhoeven
Headers show

Commit Message

Yoshihiro Kaneko March 15, 2016, 3:52 p.m. UTC
The result value is overwritten by a return value of
ravb_ptp_interrupt().

Signed-off-by: Yoshihiro Kaneko <ykaneko0929@gmail.com>
---

This patch is based on the master branch of David Miller's networking tree.

 drivers/net/ethernet/renesas/ravb_main.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

Comments

Sergei Shtylyov March 15, 2016, 5:10 p.m. UTC | #1
Hello.

On 03/15/2016 06:52 PM, Yoshihiro Kaneko wrote:

> The result value is overwritten by a return value of
> ravb_ptp_interrupt().
>
> Signed-off-by: Yoshihiro Kaneko <ykaneko0929@gmail.com>
> ---

Acked-by: Sergei Shtylyov <sergei.shtylyov@cogentembedded.com>

[...]

> diff --git a/drivers/net/ethernet/renesas/ravb_main.c b/drivers/net/ethernet/renesas/ravb_main.c
> index 86449c3..d369af8 100644
> --- a/drivers/net/ethernet/renesas/ravb_main.c
> +++ b/drivers/net/ethernet/renesas/ravb_main.c
> @@ -765,8 +765,8 @@ static irqreturn_t ravb_interrupt(int irq, void *dev_id)
>   		result = IRQ_HANDLED;
>   	}
>
> -	if (iss & ISS_CGIS)
> -		result = ravb_ptp_interrupt(ndev);

    I clearly meant to use |= here instead. Uh oh... :-(

> +	if ((iss & ISS_CGIS) && ravb_ptp_interrupt(ndev) == IRQ_HANDLED)
> +		result = IRQ_HANDLED;

MBR, Sergei
David Miller March 18, 2016, 11:22 p.m. UTC | #2
From: Yoshihiro Kaneko <ykaneko0929@gmail.com>
Date: Wed, 16 Mar 2016 00:52:16 +0900

> The result value is overwritten by a return value of
> ravb_ptp_interrupt().
> 
> Signed-off-by: Yoshihiro Kaneko <ykaneko0929@gmail.com>

Applied.
diff mbox

Patch

diff --git a/drivers/net/ethernet/renesas/ravb_main.c b/drivers/net/ethernet/renesas/ravb_main.c
index 86449c3..d369af8 100644
--- a/drivers/net/ethernet/renesas/ravb_main.c
+++ b/drivers/net/ethernet/renesas/ravb_main.c
@@ -765,8 +765,8 @@  static irqreturn_t ravb_interrupt(int irq, void *dev_id)
 		result = IRQ_HANDLED;
 	}
 
-	if (iss & ISS_CGIS)
-		result = ravb_ptp_interrupt(ndev);
+	if ((iss & ISS_CGIS) && ravb_ptp_interrupt(ndev) == IRQ_HANDLED)
+		result = IRQ_HANDLED;
 
 	mmiowb();
 	spin_unlock(&priv->lock);