Re: [patch 2.4] make tty->count atomic_t

Russell King
2003-04-03T23:17:29Z

On Thu, Apr 03, 2003 at 06:18:22PM -0500, Jes Sorensen wrote:
> >>>>> "Russell" == Russell King <rmk@arm.linux.org.uk> writes:
> Russell> On Thu, Apr 03, 2003 at 12:16:21PM -0500, Jes Sorensen wrote:
> >> I believe the 2.4 tty code is racey in the way it handles
> >> tty->count. release_dev() does the tty->count-- thing without
> >> protecting against parallel execution, hence tty->count can end up
> >> a random state as
> tty-> count-- isn't guaranteed to be atomic (load-store architectures
> tty-> and
> >> architectures with weak memory ordering etc).
>
> Russell> Isn't release_dev() only called under the BKL, which
> Russell> guarantees the old "single-thread in the kernel at a time"
> Russell> behaviour from pre-SMP Linux ?
>
> It's called from tty_release() and tty_open(). tty_release() grabs the
> BKL but I don't see the path that grabs it when calling through
> tty_open() (doesn't mean I am not blind of course ;-).

It's hidden away in fs/devices.c:chrdev_open()

--
Russell King (rmk@arm.linux.org.uk) The developer of ARM Linux