On Fri, Mar 09, 2007 at 09:42:43PM +0100, Francois Romieu wrote:
Simon Arlott [off-list ref] :
quoted
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.