__do_SAK() merely wants to send signals to all members of a session; convert it to for_each_task_pid(). tty_io.c | 7 ++++--- 1 files changed, 4 insertions(+), 3 deletions(-) diff -urpN wli-2.5.50-bk5-1/drivers/char/tty_io.c wli-2.5.50-bk5-2/drivers/char/tty_io.c --- wli-2.5.50-bk5-1/drivers/char/tty_io.c 2002-12-05 19:28:25.000000000 -0800 +++ wli-2.5.50-bk5-2/drivers/char/tty_io.c 2002-12-05 19:55:00.000000000 -0800 @@ -1835,6 +1835,8 @@ static void __do_SAK(void *arg) #else struct tty_struct *tty = arg; struct task_struct *p; + struct list_head *l; + struct pid *pid; int session; int i; struct file *filp; @@ -1847,9 +1849,8 @@ static void __do_SAK(void *arg) if (tty->driver.flush_buffer) tty->driver.flush_buffer(tty); read_lock(&tasklist_lock); - for_each_process(p) { - if ((p->tty == tty) || - ((session > 0) && (p->session == session))) { + for_each_task_pid(session, PIDTYPE_SID, p, l, pid) { + if (p->tty == tty || session > 0) { printk(KERN_NOTICE "SAK: killed process %d" " (%s): p->session==tty->session\n", p->pid, p->comm);