diff options
author | Frank Li <Frank.Li@freescale.com> | 2010-12-10 18:59:07 +0800 |
---|---|---|
committer | Frank Li <Frank.Li@freescale.com> | 2010-12-10 19:10:45 +0800 |
commit | 757bfe446bab7661d12a8772ca10b7a490c8aa47 (patch) | |
tree | f27d3bda6165af165dd37d486e32906b234e2709 /drivers | |
parent | ba0672af160ce5f6eb4342f7acb0bcb0bbb41f0f (diff) |
ENGR00136218 FEC: Fix dhcp fail when enable preempt at mx28
DHCP fail when enable NO_HZ and preempt at mx28evk
Signed-off-by: Zeng Zhaoming <b32542@freescale.com>
Signed-off-by: Frank Li <Frank.Li@freescale.com>
Diffstat (limited to 'drivers')
-rw-r--r-- | drivers/net/fec.c | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/drivers/net/fec.c b/drivers/net/fec.c index e3ce06437e94..f58196019287 100644 --- a/drivers/net/fec.c +++ b/drivers/net/fec.c @@ -253,6 +253,7 @@ fec_enet_start_xmit(struct sk_buff *skb, struct net_device *dev) if (!fep->link) { /* Link is down or autonegotiation is in progress. */ + netif_stop_queue(dev); return NETDEV_TX_BUSY; } @@ -681,6 +682,7 @@ static void fec_enet_adjust_link(struct net_device *dev) if (phy_dev->link) { if (fep->full_duplex != phy_dev->duplex) { fec_restart(dev, phy_dev->duplex); + netif_wake_queue(dev); status_change = 1; } } @@ -1418,6 +1420,8 @@ fec_stop(struct net_device *dev) if (fep->ptimer_present) fec_ptp_stop(fep->ptp_priv); writel(FEC_DEFAULT_IMASK, fep->hwp + FEC_IMASK); + + fep->link = 0; } static int __devinit |