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 3893b27345 ("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>
This commit is contained in:
Sergei Shtylyov 2017-01-04 15:10:21 +03:00 committed by David S. Miller
parent 009146d117
commit 4063469971
1 changed files with 2 additions and 1 deletions

View File

@ -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++;