summaryrefslogtreecommitdiff
path: root/drivers
diff options
context:
space:
mode:
authorFrank Li <Frank.Li@freescale.com>2010-12-10 18:59:07 +0800
committerFrank Li <Frank.Li@freescale.com>2010-12-10 19:10:45 +0800
commit757bfe446bab7661d12a8772ca10b7a490c8aa47 (patch)
treef27d3bda6165af165dd37d486e32906b234e2709 /drivers
parentba0672af160ce5f6eb4342f7acb0bcb0bbb41f0f (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.c4
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