Bug 7792

Summary: "modprobe -r ohci1394" may block uninterruptibly
Product: Drivers Reporter: Stefan Richter (stefanr)
Component: IEEE1394Assignee: Stefan Richter (stefanr)
Severity: low    
Priority: P2    
Hardware: i386   
OS: Linux   
Kernel Version: 2.6.20-rc3 Subsystem:
Regression: --- Bisected commit-id:
Bug Depends on:    
Bug Blocks: 7550    
Attachments: ieee1394: fix another deadlock in nodemgr

Description Stefan Richter 2007-01-08 12:54:24 UTC
Most recent kernel where this bug did *NOT* occur: unknown
Hardware Environment: UP PC with two FireWire cards, one card has an external
FireWire node attached
Steps to reproduce: for ((x=0; x<20; x++));do modprobe ohci1394 && sleep 2 &&
modprobe -r ohci1394 || break; done

modprobe -r will soon get stuck in D state, hanging on kthread_stop with
hl_drivers_sem and kthread_stop_lock held. But different to bug 6706, knodemgrd
sleeps *interruptibly* in nodemgr_host_thread. As soon as the external node is
unplugged, modprobe gets going again. I.e. the bug can be recovered from with
physical access to the machine.

I cannot reproduce this _without_ an external node attached.
Comment 1 Stefan Richter 2007-01-08 12:56:39 UTC
PS: This was an uniprocessor kernel, configured without kernel preemption.
Comment 2 Stefan Richter 2007-01-08 13:09:45 UTC
Als happens on UP PC with SMP PREEMPT kernel.
Comment 3 Stefan Richter 2007-02-10 13:00:10 UTC
Created attachment 10376 [details]
ieee1394: fix another deadlock in nodemgr
Comment 4 Stefan Richter 2007-02-21 03:27:12 UTC
fix is in 2.6.21-rc1