Messages in this thread Patch in this message | | | Date | Fri, 03 Sep 2004 12:00:57 +0400 | From | Kirill Korotaev <> | Subject | Re: INIT hangs with tonight BK pull (2.6.9-rc1+) |
| |
> After doing BK pull last night INIT gets stuck in do_tty_hangup after > executing rc.sysinit. Was booting fine with pull from 2 days ago... > > Anyone else seeing this? > > I suspect pidhash patch because it touched tty_io.c, but I have not tried > reverting it as it is getting too late here... So I apologize in advance > if I am pointing finger at the innocent ;)
Oops, you are right. These do_each_task_pid()/while_each_task_pid() do loop 4ever with 'continue' inside. Strange, that I haven't faced the problem on my machine before sending the patch... :(
Sorry for the inconvinience. Patch is inside.
Kirill --- ./include/linux/pid.h.pid2 2004-09-03 11:52:27.510664040 +0400 +++ ./include/linux/pid.h 2004-09-03 11:40:33.616192496 +0400 @@ -46,10 +46,10 @@ extern void switch_exec_pids(struct task do { #define while_each_task_pid(who, type, task) \ - task = pid_task((task)->pids[type].pid_list.next,\ - type); \ - prefetch((task)->pids[type].pid_list.next); \ - } while (hlist_unhashed(&(task)->pids[type].pid_chain));\ + } while (task = pid_task((task)->pids[type].pid_list.next,\ + type), \ + prefetch((task)->pids[type].pid_list.next), \ + hlist_unhashed(&(task)->pids[type].pid_chain)); \ } \ #endif /* _LINUX_PID_H */ | |