On Fri, Mar 09, 2007 at 09:42:43PM +0100, Francois Romieu wrote: > Simon Arlott <[EMAIL PROTECTED]> : > > When I unplug the cable the system just stops responding to anything, > > at all. No message is printed to the console when the cable is plugged > > back in. > > rtl8139_interrupt (spin_lock(&tp->lock)) > -> rtl8139_weird_interrupt > -> rtl_check_media > -> mii_check_media (printk(KERN_INFO "%s: link down\n", ...)) > [netpoll stuff here] > -> rtl8139_poll_controller > -> rtl8139_interrupt > *deadlock*
Probably the best thing that can be done here aside from moving mii_check_media outside interrupt handling is to add netpoll_plug/unplug(dev) methods that push work off to netpoll's queue for drivers that have a netpoll recursion problem. -- Mathematics is the supreme nostalgia of our time. - To unsubscribe from this list: send the line "unsubscribe netdev" in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html