summaryrefslogtreecommitdiff
path: root/drivers/net/ethernet/renesas/sh_eth.c
diff options
context:
space:
mode:
authorSergei Shtylyov <sergei.shtylyov@cogentembedded.com>2017-01-04 15:10:21 +0300
committerDavid S. Miller <davem@davemloft.net>2017-01-04 21:47:54 +0300
commit4063469971af9611648382559c2d399cce03ae67 (patch)
treed6723bb862fe094c4497147aee8fa9c1b08abaaf /drivers/net/ethernet/renesas/sh_eth.c
parent009146d117b9b816193fce0f1ed75f015a398721 (diff)
downloadlinux-4063469971af9611648382559c2d399cce03ae67.tar.xz
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 <sergei.shtylyov@cogentembedded.com> Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'drivers/net/ethernet/renesas/sh_eth.c')
-rw-r--r--drivers/net/ethernet/renesas/sh_eth.c3
1 files changed, 2 insertions, 1 deletions
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++;