diff options
author | Fugang Duan <B38611@freescale.com> | 2014-04-22 12:07:07 +0800 |
---|---|---|
committer | Fugang Duan <B38611@freescale.com> | 2014-04-22 12:36:50 +0800 |
commit | 63a5ec1b474c5d7e2276a50a3e30791c7b64ba16 (patch) | |
tree | cf6b0f92763af814977df09025522a862ec9243f | |
parent | 5d891c7b305dd2d39b0005aecf2c80b242fadaf0 (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.c | 2 |
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; } |