diff options
author | Stefan Richter <stefanr@s5r6.in-berlin.de> | 2007-02-10 16:06:18 -0500 |
---|---|---|
committer | Stefan Richter <stefanr@s5r6.in-berlin.de> | 2007-02-17 08:41:18 -0500 |
commit | a65421ea3f8a0e78b4e3b858bdc5ada5ad653807 (patch) | |
tree | 5efc5d9e1f57afef8457f9c40c0071da4a26d8a6 /drivers/ieee1394 | |
parent | 3dc5ea9b31a8c83cffa338aba91adbc9bd387002 (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/ieee1394')
-rw-r--r-- | drivers/ieee1394/nodemgr.c | 3 |
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 | ||