Skip to content

Commit

Permalink
net/fec: Don't let ndo_start_xmit return NETDEV_TX_BUSY without link
Browse files Browse the repository at this point in the history
Don't test for having link and let hardware deal with this situation.

Without this patch I see a machine running an -rt patched Linux being
stuck in sch_direct_xmit when it looses link while there is still a
packet to be sent. In this case the fec_enet_start_xmit routine returned
NETDEV_TX_BUSY which makes the network stack reschedule the packet and
so sch_direct_xmit calls fec_enet_start_xmit again.
I failed to reproduce a complete hang without -rt, but I think the
problem exists there, too.

Signed-off-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
Signed-off-by: David S. Miller <davem@davemloft.net>
  • Loading branch information
Uwe Kleine-König authored and David S. Miller committed Jul 30, 2013
1 parent a0db856 commit a264b98
Showing 1 changed file with 0 additions and 5 deletions.
5 changes: 0 additions & 5 deletions drivers/net/ethernet/freescale/fec_main.c
Original file line number Diff line number Diff line change
Expand Up @@ -294,11 +294,6 @@ fec_enet_start_xmit(struct sk_buff *skb, struct net_device *ndev)
unsigned short status;
unsigned int index;

if (!fep->link) {
/* Link is down or auto-negotiation is in progress. */
return NETDEV_TX_BUSY;
}

/* Fill in a Tx ring entry */
bdp = fep->cur_tx;

Expand Down

0 comments on commit a264b98

Please sign in to comment.