aboutsummaryrefslogtreecommitdiffstats
path: root/drivers
diff options
context:
space:
mode:
authorStefan Richter <stefanr@s5r6.in-berlin.de>2007-02-10 16:06:18 -0500
committerStefan Richter <stefanr@s5r6.in-berlin.de>2007-02-17 08:41:18 -0500
commita65421ea3f8a0e78b4e3b858bdc5ada5ad653807 (patch)
tree5efc5d9e1f57afef8457f9c40c0071da4a26d8a6 /drivers
parent3dc5ea9b31a8c83cffa338aba91adbc9bd387002 (diff)
ieee1394: fix another deadlock in nodemgr
A "modprobe ohci1394; sleep 1.5; modprobe -r ohci1394" could get stuck in uninterruptible state, especially if an external node was connected. http://bugzilla.kernel.org/show_bug.cgi?id=7792 Signed-off-by: Stefan Richter <stefanr@s5r6.in-berlin.de>
Diffstat (limited to 'drivers')
-rw-r--r--drivers/ieee1394/nodemgr.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/drivers/ieee1394/nodemgr.c b/drivers/ieee1394/nodemgr.c
index ba9faeff4793..c5ace190bfe6 100644
--- a/drivers/ieee1394/nodemgr.c
+++ b/drivers/ieee1394/nodemgr.c
@@ -1681,7 +1681,8 @@ static int nodemgr_host_thread(void *__hi)
1681 for (;;) { 1681 for (;;) {
1682 /* Sleep until next bus reset */ 1682 /* Sleep until next bus reset */
1683 set_current_state(TASK_INTERRUPTIBLE); 1683 set_current_state(TASK_INTERRUPTIBLE);
1684 if (get_hpsb_generation(host) == generation) 1684 if (get_hpsb_generation(host) == generation &&
1685 !kthread_should_stop())
1685 schedule(); 1686 schedule();
1686 __set_current_state(TASK_RUNNING); 1687 __set_current_state(TASK_RUNNING);
1687 1688