Messages in this thread | | | Date | Thu, 20 Jan 2000 15:05:19 +0100 | From | Manfred Spraul <> | Subject | arch/i386/kernel/signals.c: recalc_sigpending without spinlock |
| |
I think there is an error in do_signal():
default: lock_kernel(); sigaddset(¤t->signal, signr); recalc_sigpending(current); current->flags |= PF_SIGNALED; do_exit(exit_code); /* NOTREACHED */ }
I haven't checked the details of the signal delivery, but it seems that the lock_kernel() is superflous, and spin_lock_irq(¤t->sigmask_lock) is missing:
default: spin_lock_irq(¤t->sigmask_lock); sigaddset(¤t->signal, signr); recalc_sigpending(current); spin_unlock_irq(¤t->sigmask_lock); current->flags |= PF_SIGNALED; do_exit(exit_code); /* NOTREACHED */ }
-- Manfred
- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.rutgers.edu Please read the FAQ at http://www.tux.org/lkml/
| |