When the chip dies (probably because of a bug somewhere in the driver), de_stop_rxtx() fails and changing the media type crashes the whole machine. Replace BUG_ON() in de_set_media() with a warning.
Signed-off-by: Ondrej Zary <linux@xxxxxxxxxxxxxxxxxxxx>
--- linux-2.6.24-orig/drivers/net/tulip/de2104x.c 2008-02-25 18:27:34.000000000 +0100
+++ linux-2.6.24-pentium/drivers/net/tulip/de2104x.c 2008-02-25 18:34:56.000000000 +0100
@@ -910,7 +910,8 @@
unsigned media = de->media_type;
u32 macmode = dr32(MacMode);
- BUG_ON(de_is_running(de));
+ if (de_is_running(de))
+ printk(KERN_WARNING "%s: chip is running while changing media!\n", de->dev->name);