diff -aur affix-kernel-2.0.0/btcore/hci_mgr.c affix-kernel-2.0.0.RH9/btcore/hci_mgr.c --- affix-kernel-2.0.0/btcore/hci_mgr.c 2003-04-16 12:00:42.000000000 +0300 +++ affix-kernel-2.0.0.RH9/btcore/hci_mgr.c 2003-04-16 13:19:46.000000000 +0300 @@ -384,7 +384,6 @@ int affixd_thread(void *startup) { int ret = 0; - struct task_struct *curtask = current; struct pollfd fds[2]; __u8 msg[HCI_MAX_MSG_SIZE]; __u8 event[HCI_MAX_EVENT_SIZE]; @@ -398,15 +397,12 @@ strcpy(current->comm, "affixd"); unlock_kernel(); - spin_lock_irq(&curtask->sigmask_lock); - //spin_lock_irq(¤t->sighand->siglock); For RH 9 - sigfillset(&curtask->blocked); // block all + spin_lock_irq(¤t->sighand->siglock); + sigfillset(¤t->blocked); // block all siginitsetinv(¤t->blocked, sigmask(SIGTERM) | sigmask(SIGUSR1)); //sigemptyset(¤t->blocked); // unblock all - recalc_sigpending(curtask); - spin_unlock_irq(&curtask->sigmask_lock); - //recalc_sigpending(); for RH 9 - //spin_unlock_irq(¤t->sighand->siglock); + recalc_sigpending(); + spin_unlock_irq(¤t->sighand->siglock); /* Open HCI manager */ fds[0].fd = hci_open_mgr(); @@ -455,15 +451,15 @@ } } } - if (signal_pending(curtask)) { + if (signal_pending(current)) { DBPRT("Got a signal!!!\n"); - spin_lock_irq(&curtask->sigmask_lock); - if (sigismember(&curtask->pending.signal, SIGUSR1)) { - sigdelset(&curtask->pending.signal, SIGUSR1); + spin_lock_irq(¤t->sighand->siglock); + if (sigismember(¤t->pending.signal, SIGUSR1)) { + sigdelset(¤t->pending.signal, SIGUSR1); } - flush_signals(curtask); // flush pending signals - recalc_sigpending(curtask); - spin_unlock_irq(&curtask->sigmask_lock); + flush_signals(current); // flush pending signals + recalc_sigpending(); + spin_unlock_irq(¤t->sighand->siglock); if (mgr_exit) break; } diff -aur affix-kernel-2.0.0/drivers/bt3c/bt3c_cs.c affix-kernel-2.0.0.RH9/drivers/bt3c/bt3c_cs.c --- affix-kernel-2.0.0/drivers/bt3c/bt3c_cs.c 2003-04-16 12:00:42.000000000 +0300 +++ affix-kernel-2.0.0.RH9/drivers/bt3c/bt3c_cs.c 2003-04-16 13:19:44.000000000 +0300 @@ -535,19 +535,19 @@ } /* Block signals, everything but SIGKILL/SIGSTOP */ - spin_lock_irq(¤t->sigmask_lock); + spin_lock_irq(¤t->sighand->siglock); tmpsig = current->blocked; siginitsetinv(¤t->blocked, sigmask(SIGKILL) | sigmask(SIGSTOP)); - recalc_sigpending(current); - spin_unlock_irq(¤t->sigmask_lock); + recalc_sigpending(); + spin_unlock_irq(¤t->sighand->siglock); result = waitpid(pid, NULL, __WCLONE); /* Allow signals again */ - spin_lock_irq(¤t->sigmask_lock); + spin_lock_irq(¤t->sighand->siglock); current->blocked = tmpsig; - recalc_sigpending(current); - spin_unlock_irq(¤t->sigmask_lock); + recalc_sigpending(); + spin_unlock_irq(¤t->sighand->siglock); if (result != pid) { printk(KERN_WARNING "bt3c_cs: Waiting for pid %d failed (errno=%d).\n", pid, -result);