Commit 677177c5 authored by Philippe De Muyter's avatar Philippe De Muyter Committed by Linus Torvalds
Browse files

[PATCH] m68knommu: avoid fec driver hang when link disappears



Avoid requesting a `Graceful Transmit Stop' when link has disappeared,
because that request cannot complete without link.

Signed-off-by: default avatarGreg Ungerer <gerg@uclinux.org>
Signed-off-by: default avatarLinus Torvalds <torvalds@osdl.org>
parent 67bdd984
Loading
Loading
Loading
Loading
+11 −4
Original line number Diff line number Diff line
@@ -22,7 +22,7 @@
 * Copyright (c) 2001-2005 Greg Ungerer (gerg@snapgear.com)
 *
 * Bug fixes and cleanup by Philippe De Muyter (phdm@macqel.be)
 * Copyright (c) 2004-2005 Macq Electronique SA.
 * Copyright (c) 2004-2006 Macq Electronique SA.
 */

#include <linux/config.h>
@@ -2420,9 +2420,16 @@ fec_stop(struct net_device *dev)
	fep = netdev_priv(dev);
	fecp = fep->hwp;

	/*
	** We cannot expect a graceful transmit stop without link !!!
	*/
	if (fep->link)
		{
		fecp->fec_x_cntrl = 0x01;	/* Graceful transmit stop */

	while(!(fecp->fec_ievent & FEC_ENET_GRA));
		udelay(10);
		if (!(fecp->fec_ievent & FEC_ENET_GRA))
			printk("fec_stop : Graceful transmit stop did not complete !\n");
		}

	/* Whack a reset.  We should wait for this.
	*/