lkml.org 
[lkml]   [2010]   [Jan]   [26]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
Date
From
SubjectRe: [06/11] tty: fix race in tty_fasync


On Tue, 26 Jan 2010, Eric W. Biederman wrote:

> 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.

Hmm. That seems to be true in mainline too, isn't it?

So now we have:
- tty_fasync() gets tty->ctrl_lock, with spin_lock_irqsave()

- it then calls __f_setown()

- which calls f_modown(),

- which does

write_lock_irq(&filp->f_owner.lock);
..
write_unlock_irq(&filp->f_owner.lock);

which in turn enables interrupts while we still hold ctrl_lock.

so that whole commit 70362511806 was/is buggy in mainline too.

The minimal fix is likely to just make f_modown() use
write_lock_irqsave/restore. Greg?

Linus


\
 
 \ /
  Last update: 2010-01-26 23:15    [W:0.051 / U:0.972 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site