| From f03ad6c2af0ae8d76fd119961d39d553f0a0f2f2 Mon Sep 17 00:00:00 2001 |
| From: Sergei Shtylyov <sergei.shtylyov@cogentembedded.com> |
| Date: Wed, 4 Jan 2017 15:10:21 +0300 |
| Subject: [PATCH 124/255] 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> |
| (cherry picked from commit 4063469971af9611648382559c2d399cce03ae67) |
| Signed-off-by: Simon Horman <horms+renesas@verge.net.au> |
| --- |
| drivers/net/ethernet/renesas/sh_eth.c | 3 ++- |
| 1 file changed, 2 insertions(+), 1 deletion(-) |
| |
| --- a/drivers/net/ethernet/renesas/sh_eth.c |
| +++ b/drivers/net/ethernet/renesas/sh_eth.c |
| @@ -1549,7 +1549,8 @@ static void sh_eth_error(struct net_devi |
| 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++; |