Re: netconsole system freeze when cable unplugged

From: Matt Mackall
Date: Sat Mar 10 2007 - 15:45:04 EST


On Fri, Mar 09, 2007 at 09:42:43PM +0100, Francois Romieu wrote:
> Simon Arlott <simon@xxxxxxxxxxx> :
> > 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 linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/