In last setsid/tty locking changes:
diff -Nru a/kernel/exit.c b/kernel/exit.c
--- a/kernel/exit.c 2005-01-07 05:24:41 -08:00
+++ b/kernel/exit.c 2005-01-07 05:24:41 -08:00
@@ -332,7 +332,9 @@
exit_mm(current);
set_special_pids(1, 1);
+ down(&tty_sem);
current->signal->tty = NULL;
+ up(&tty_sem);
/* Block and flush all signals */
sigfillset(&blocked);
Sorry for the silly question, but why is needed a semaphore to write just one
value without read/write nothing else?
Bye
Marco
On Gwe, 2005-01-07 at 13:37, Marco Cipullo wrote:
> In last setsid/tty locking changes:
> + down(&tty_sem);
> current->signal->tty = NULL;
> + up(&tty_sem);
>
> /* Block and flush all signals */
> sigfillset(&blocked);
>
> Sorry for the silly question, but why is needed a semaphore to write just one
> value without read/write nothing else?
Look at the tty init_dev code paths and it might make more sense. It
doesn't just say "protect this write" more importantly it says "don't do
this in parallel with tty setup"