浏览代码

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>
Stefan Richter 18 年之前
父节点
当前提交
a65421ea3f
共有 1 个文件被更改,包括 2 次插入1 次删除
  1. 2 1
      drivers/ieee1394/nodemgr.c

+ 2 - 1
drivers/ieee1394/nodemgr.c

@@ -1681,7 +1681,8 @@ static int nodemgr_host_thread(void *__hi)
 	for (;;) {
 		/* Sleep until next bus reset */
 		set_current_state(TASK_INTERRUPTIBLE);
-		if (get_hpsb_generation(host) == generation)
+		if (get_hpsb_generation(host) == generation &&
+		    !kthread_should_stop())
 			schedule();
 		__set_current_state(TASK_RUNNING);