linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
To: Jiri Slaby <jirislaby@kernel.org>
Cc: Jann Horn <jannh@google.com>, linux-kernel@vger.kernel.org
Subject: Re: [PATCH] tty: Remove dead termiox code
Date: Fri, 4 Dec 2020 09:36:54 +0100	[thread overview]
Message-ID: <X8n1JiDS8ZVA6e6o@kroah.com> (raw)
In-Reply-To: <93834a92-b342-aaee-c400-2883d5df0cdc@kernel.org>

On Fri, Dec 04, 2020 at 09:20:39AM +0100, Jiri Slaby wrote:
> On 04. 12. 20, 9:17, Greg Kroah-Hartman wrote:
> > On Fri, Dec 04, 2020 at 08:22:41AM +0100, Jiri Slaby wrote:
> > > On 03. 12. 20, 3:03, Jann Horn wrote:
> > > > set_termiox() and the TCGETX handler bail out with -EINVAL immediately
> > > > if ->termiox is NULL, but there are no code paths that can set
> > > > ->termiox to a non-NULL pointer; and no such code paths seem to have
> > > > existed since the termiox mechanism was introduced back in
> > > > commit 1d65b4a088de ("tty: Add termiox") in v2.6.28.
> > > > Similarly, no driver actually implements .set_termiox; and it looks like
> > > > no driver ever has.
> > > 
> > > Nice!
> > > 
> > > > Delete this dead code; but leave the definition of struct termiox in the
> > > > UAPI headers intact.
> > > 
> > > I am thinking -- can/should we mark the structure as deprecated so that
> > > userspace stops using it eventually?
> > 
> > If it doesn't do anything, how can userspace even use it today?  :)
> 
> Well, right. I am in favor to remove it, BUT: what if someone tries that
> ioctl and bails out if EINVAL is returned. I mean: if they define a local
> var of that struct type and pass it to the ioctl, we would break the build
> by removing the struct completely. Even if the code didn't do anything
> useful, it still could be built. So is this very potential breakage OK?

I'm sorry, but I don't understand.  This is a kernel-internal-only
structure, right?  If someone today tries to call these ioctls, they
will get a -EINVAL error as no serial driver in the tree supports them.

If we remove the structure (i.e. what this patch does), and someone
makes an ioctl call, they will still get the same -EINVAL error they did
before.

So nothing has changed as far as userspace can tell.

Now if they have an out-of-tree serial driver that does implement this
call, then yes, they will have problems, but that's not our problem,
that is theirs for not ever submitting their code.  We don't support
in-kernel apis with no in-kernel users.

Or am I still confused?

thanks,

greg k-h

  reply	other threads:[~2020-12-04  8:36 UTC|newest]

Thread overview: 12+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-12-03  2:03 [PATCH] tty: Remove dead termiox code Jann Horn
2020-12-03 18:43 ` Greg Kroah-Hartman
2020-12-04  7:22 ` Jiri Slaby
2020-12-04  8:17   ` Greg Kroah-Hartman
2020-12-04  8:20     ` Jiri Slaby
2020-12-04  8:36       ` Greg Kroah-Hartman [this message]
2020-12-04  8:51         ` Jiri Slaby
2020-12-04  9:10           ` Greg Kroah-Hartman
2020-12-07 10:19             ` Adam Borowski
2020-12-07 13:57               ` Greg Kroah-Hartman
2020-12-08 11:13       ` Christoph Hellwig
2020-12-08 11:23         ` Jiri Slaby

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=X8n1JiDS8ZVA6e6o@kroah.com \
    --to=gregkh@linuxfoundation.org \
    --cc=jannh@google.com \
    --cc=jirislaby@kernel.org \
    --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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).