Re: [RFC][PATCH] ->signal->tty locking

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 





Peter Zijlstra wrote:
Oleg wrote:
"Historically ->signal/->sighand (both ptrs and their contents) were globally
protected by tasklist_lock. 'current' can use these pointers lockless, they
can't be changed under him.

Nowadays ->signal/->sighand are _also_ protected by ->sighand->siglock.
Unless you are current, you can't lock ->siglock directly (without holding
tasklist_lock), you should use lock_task_sighand()."

Then, to be consistent with the rest of the kernel, ->signal->tty
locking should look like so:

  mutex_lock(&tty_mutex)
    read_lock(&tasklist_lock)
      lock_task_sighand(p, &flags)

It would be nice if we could clean up some of the complicated locking in this code. For example, from do_tty_hangup,

*
*      Locking:
*              BKL
*              redirect lock for undoing redirection
*              file list lock for manipulating list of ttys
*              tty_ldisc_lock from called functions
*              termios_sem resetting termios data
*              tasklist_lock to walk task list for hangup event

P.

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [email protected]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

[Index of Archives]     [Kernel Newbies]     [Netfilter]     [Bugtraq]     [Photo]     [Stuff]     [Gimp]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Video 4 Linux]     [Linux for the blind]     [Linux Resources]
  Powered by Linux