lkml.org 
[lkml]   [2010]   [Jan]   [26]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    SubjectRe: [06/11] tty: fix race in tty_fasync
    From
    Date
    Greg KH <gregkh@suse.de> writes:

    > 2.6.27-stable review patch. If anyone has any objections, please let us know.

    Only that __f_setown by way of f_modown unconditionally enables interrupts. So
    without touching f_modown as well in mainline we have nasty sounding lockdep warnings.

    Eric


    > ------------------
    >
    > From: Greg Kroah-Hartman <gregkh@suse.de>
    >
    > commit 703625118069f9f8960d356676662d3db5a9d116 upstream.
    >
    > We need to keep the lock held over the call to __f_setown() to
    > prevent a PID race.
    >
    > Thanks to Al Viro for pointing out the problem, and to Travis for
    > making us look here in the first place.
    >
    > Cc: Eric W. Biederman <ebiederm@xmission.com>
    > Cc: Al Viro <viro@ZenIV.linux.org.uk>
    > Cc: Alan Cox <alan@lxorguk.ukuu.org.uk>
    > Cc: Linus Torvalds <torvalds@linux-foundation.org>
    > Cc: Tavis Ormandy <taviso@google.com>
    > Cc: Jeff Dike <jdike@addtoit.com>
    > Cc: Julien Tinnes <jln@google.com>
    > Cc: Matt Mackall <mpm@selenic.com>
    > Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
    >
    > ---
    > drivers/char/tty_io.c | 2 +-
    > 1 file changed, 1 insertion(+), 1 deletion(-)
    >
    > --- a/drivers/char/tty_io.c
    > +++ b/drivers/char/tty_io.c
    > @@ -2437,8 +2437,8 @@ static int tty_fasync(int fd, struct fil
    > pid = task_pid(current);
    > type = PIDTYPE_PID;
    > }
    > - spin_unlock_irqrestore(&tty->ctrl_lock, flags);
    > retval = __f_setown(filp, pid, type, 0);
    > + spin_unlock_irqrestore(&tty->ctrl_lock, flags);
    > if (retval)
    > goto out;
    > } else {


    \
     
     \ /
      Last update: 2010-01-26 20:53    [W:0.591 / U:1.588 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site