From: Sergei Shtylyov Date: Wed, 4 Jan 2017 12:10:21 +0000 (+0300) Subject: sh_eth: handle only enabled E-MAC interrupts X-Git-Tag: v4.11-rc1~94^2~102^2~2 X-Git-Url: https://git.karo-electronics.de/?a=commitdiff_plain;h=4063469971af9611648382559c2d399cce03ae67;p=karo-tx-linux.git sh_eth: handle only enabled E-MAC interrupts The driver should only handle the enabled E-MAC interrupts, like it does for the E-DMAC interrupts since commit 3893b27345ac ("sh_eth: workaround for spurious ECI interrupt"), so mask ECSR with ECSIPR when reading it in sh_eth_error(). Signed-off-by: Sergei Shtylyov Signed-off-by: David S. Miller --- diff --git a/drivers/net/ethernet/renesas/sh_eth.c b/drivers/net/ethernet/renesas/sh_eth.c index f341c1bc7001..c89569509a47 100644 --- a/drivers/net/ethernet/renesas/sh_eth.c +++ b/drivers/net/ethernet/renesas/sh_eth.c @@ -1535,7 +1535,8 @@ static void sh_eth_error(struct net_device *ndev, u32 intr_status) u32 mask; if (intr_status & EESR_ECI) { - felic_stat = sh_eth_read(ndev, ECSR); + felic_stat = sh_eth_read(ndev, ECSR) & + sh_eth_read(ndev, ECSIPR); sh_eth_write(ndev, felic_stat, ECSR); /* clear int */ if (felic_stat & ECSR_ICD) ndev->stats.tx_carrier_errors++;