[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <CAPXgP11+GUhMk+JPzCMZ4w_CQrbFTwqQm0g7HMfsrppACGcOTg@mail.gmail.com>
Date: Thu, 27 Feb 2014 12:16:37 +0100
From: Kay Sievers <kay@...y.org>
To: David Herrmann <dh.herrmann@...il.com>
Cc: Hannes Reinecke <hare@...e.de>,
linux-kernel <linux-kernel@...r.kernel.org>,
Ray Strode <halfline@...il.com>,
Lennart Poettering <lennart@...ttering.net>,
Greg Kroah-Hartman <gregkh@...uxfoundation.org>,
Jiri Slaby <jslaby@...e.cz>, Werner Fink <werner@...e.de>
Subject: Re: [PATCHv3] tty: Set correct tty name in 'active' sysfs attribute
On Tue, Feb 25, 2014 at 10:38 AM, David Herrmann <dh.herrmann@...il.com> wrote:
> On Tue, Feb 25, 2014 at 8:51 AM, Hannes Reinecke <hare@...e.de> wrote:
>> Positive?
>> I thought this was precisely the problem, ->device() changing the
>> index '0' into something non-zero.
>> The reports we had were that the line 'tty0' changed into 'tty1'.
>> Hence ->device() converted cs[i]->index (which is '0') into index
>> (which is '1').
>> Hence the check would be correct, wouldn't it?
>
> If "cs[i]" points to tty0, then cs[i]->index is 0. If you call
> ->device(), it will store 1 (or !=0) in "index". Thus, "(driver &&
> (index > 0))" will be true and you will write tty1 into the file
> instead of tty0. So you don't want to check whether the new value is
> non-zero, but whether the *previous* value was 0, turning this into:
>
> if (driver && (cs[i]->index > 0 || driver->major != TTY_MAJOR))
>
> So loosely speaking, we use the new code only for devices which either
> are not a VT or have an idx > 0. Otherwise, we use our fallback.
Hannes, David, care to update the patch to do that? It all sounds fine
to me. And we should get this merged again.
Kay
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
Powered by blists - more mailing lists