[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <CAHp75VeEjExnouxPqxPg8uVBJXRiWOpLSSypeDMNTheD3aJLNg@mail.gmail.com>
Date: Mon, 10 Jul 2017 18:21:37 +0300
From: Andy Shevchenko <andy.shevchenko@...il.com>
To: Okash Khawaja <okash.khawaja@...il.com>
Cc: Greg Kroah-Hartman <gregkh@...uxfoundation.org>,
Jiri Slaby <jslaby@...e.com>,
Samuel Thibault <samuel.thibault@...-lyon.org>,
Alan Cox <gnomes@...rguk.ukuu.org.uk>,
"linux-kernel@...r.kernel.org" <linux-kernel@...r.kernel.org>,
William Hubbs <w.d.hubbs@...il.com>,
Chris Brannon <chris@...-brannons.com>,
Kirk Reiser <kirk@...sers.ca>, speakup@...ux-speakup.org,
devel@...verdev.osuosl.org
Subject: Re: [patch 1/3] tty: resolve tty contention between kernel and user space
On Mon, Jul 10, 2017 at 11:31 AM, Okash Khawaja <okash.khawaja@...il.com> wrote:
> On Sun, Jul 09, 2017 at 06:04:17PM +0300, Andy Shevchenko wrote:
>> On Sun, Jul 9, 2017 at 2:41 PM, Okash Khawaja <okash.khawaja@...il.com> wrote:
>>
>> > +struct tty_struct *tty_kopen(dev_t device)
>> > +{
>> > + struct tty_struct *tty;
>> > + struct tty_driver *driver = NULL;
>> > + int index = -1;
>> > +
>> > + mutex_lock(&tty_mutex);
>> > + driver = tty_lookup_driver(device, NULL, &index);
>> > + if (IS_ERR(driver)) {
>>
>> > + mutex_unlock(&tty_mutex);
>> > + return ERR_CAST(driver);
>>
>> Hmm... perhaps
>>
>> tty = ERR_CAST(driver);
>> goto out_unlock;
>>
>> See below for further details.
>>
> Sorry missed this one out. Since tty_lookup_driver has failed, we don't
> need to down the refcount on driver. So we can return here, without
> going to out_unlock.
Yeah, and my point is to use goto with the symmetric giveups of lock
and reference.
--
With Best Regards,
Andy Shevchenko
Powered by blists - more mailing lists