From: Paul Fulghum <paulkf@microgate.com>
To: Jason Baron <jbaron@redhat.com>
Cc: Andrew Morton <akpm@osdl.org>,
Linux Kernel Mailing List <linux-kernel@vger.kernel.org>,
"jesper.juhl@gmail.com" <jesper.juhl@gmail.com>,
Alan Cox <alan@lxorguk.ukuu.org.uk>
Subject: Re: [PATCH] tty reference count fix
Date: Mon, 13 Feb 2006 17:45:00 -0600 [thread overview]
Message-ID: <43F119FC.10900@microgate.com> (raw)
In-Reply-To: <Pine.LNX.4.61.0602131747570.19384@dhcp83-105.boston.redhat.com>
Jason Baron wrote:
> patch looks good to me. Or you could even drop the tty_sem completely from
> the release_dev path (patch below) since lock_kernel() is held in both
> tty_open() and the release_dev paths()
The historical posts on locking in release_dev()
I looked at suggest that a move from BKL to more
fine grained synchronization (tty_sem) was a goal.
The code looks like it originally relied on the BKL.
The later addition of tty_sem was done in a way
that allowed sleeping between setting tty_closing
and TTY_CLOSING flag:
down(&tty_sem)
if (tty->count == 1)
tty_closing = 1;
up(&tty_sem)
...
down(&tty_sem) <<<< can sleep, open can increase count
tty->count--
up(&tty_sem)
...
if (tty_closing)
set_bit(TTY_CLOSING)
> (and there is no sleeping b/w setting the tty_closing
> flag and setting the TTY_CLOSING bit).
Your patch leaves the schedule() call at the bottom of
the while loop between setting tty_closing and
setting TTY_CLOSING flag.
Thanks,
Paul
--
Paul Fulghum
Microgate Systems, Ltd
next prev parent reply other threads:[~2006-02-13 23:45 UTC|newest]
Thread overview: 7+ messages / expand[flat|nested] mbox.gz Atom feed top
2006-02-13 20:13 [PATCH] tty reference count fix Paul Fulghum
2006-02-13 22:15 ` Jesper Juhl
2006-02-13 23:21 ` Paul Fulghum
2006-02-13 22:51 ` Jason Baron
2006-02-13 23:45 ` Paul Fulghum [this message]
2006-02-14 0:20 ` Paul Fulghum
2006-02-14 21:46 ` Arjan van de Ven
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=43F119FC.10900@microgate.com \
--to=paulkf@microgate.com \
--cc=akpm@osdl.org \
--cc=alan@lxorguk.ukuu.org.uk \
--cc=jbaron@redhat.com \
--cc=jesper.juhl@gmail.com \
--cc=linux-kernel@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.