Linus Torvalds wrote:
>
> I'd prefer an approach something like this:
>
> lock_task(current);
> fs = current->fs;
> mm = current->mm;
> files = current->files;
> signal = current->signal;
> current->fs = NULL;
> current->mm = NULL;
> current->files = NULL;
> current->signal = NULL;
I assume "current->sig".
lock_task can't protect ->sig, it's dereferenced in ignored_signal(),
called by send_sig_info() --> within interrupts.
spin_lock_irq(¤t->sigmask_lock)
signal = current->sig;
current->sig = NULL; /* already checked by ignored_signal */
spin_unlock_irq(¤t->sigmask_lock)
Btw, it seems that a few
spin_lock(¤t->sig->siglock);
are missing in kernel/signal.c
-- 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/
This archive was generated by hypermail 2b29 : Sun May 07 2000 - 21:00:17 EST