summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFugang Duan <B38611@freescale.com>2014-04-22 12:07:07 +0800
committerFugang Duan <B38611@freescale.com>2014-04-22 12:36:50 +0800
commit63a5ec1b474c5d7e2276a50a3e30791c7b64ba16 (patch)
treecf6b0f92763af814977df09025522a862ec9243f
parent5d891c7b305dd2d39b0005aecf2c80b242fadaf0 (diff)
ENGR00309727 net:fec: fix mdio timeout issue
The issue can be reproduced after overninght test, reproduced step: nfs mount rootfs, don't do any other ethernet test cases. If the issue generates, there has log: fec 2188000.ethernet eth0: MDIO read timeout The origin interrupt handler may ignore to process mdio interrupt in current irq handler until the next irq action. If the next irq comes in time that is less than the mdio wait time, the next irq handler wake up a single thread waiting on this completion, MDIO read function can get the single before time expired. Otherwise, MDIO read generate timeout issue. The patch just to fix the issue. Signed-off-by: Fugang Duan <B38611@freescale.com>
-rw-r--r--drivers/net/ethernet/freescale/fec_main.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/drivers/net/ethernet/freescale/fec_main.c b/drivers/net/ethernet/freescale/fec_main.c
index b13675cf8975..cd28f81b9e9b 100644
--- a/drivers/net/ethernet/freescale/fec_main.c
+++ b/drivers/net/ethernet/freescale/fec_main.c
@@ -1251,7 +1251,7 @@ fec_enet_interrupt(int irq, void *dev_id)
complete(&fep->mdio_done);
fep->work_mdio = 0;
}
- } while (fec_enet_collect_events(fep));
+ } while (1);
return ret;
}