Re: [PATCH 02/50] move compat handling of tty ioctls to tty_compat_ioctl()
From: Arnd Bergmann
Date: Fri Sep 14 2018 - 15:39:13 EST
On Fri, Sep 14, 2018 at 8:17 PM gregkh <gregkh@xxxxxxxxxxxxxxxxxxx> wrote:
>
> On Fri, Sep 14, 2018 at 05:15:52PM +0200, Arnd Bergmann wrote:
> > On Thu, Sep 13, 2018 at 4:40 AM Al Viro <viro@xxxxxxxxxxxxxxxxxx> wrote:
> > + case TCSETX:
> > + case TCSETXF:
> > + case TCSETXW:
> > + case TIOCGETC:
> > + case TIOCGETP:
> > + case TIOCGPTPEER:
> > + case TIOCSERCONFIG:
> > + case TIOCSETC:
> > + case TIOCSETN:
> > + case TIOCSETP:
> > + case TIOCVHANGUP:
> >
> > Should these all be added in a stable backport patch?
>
> Why? What is being "fixed" here that anyone has noticed before that is
> causing problems in those old kernels? If no one has complained about
> the lack of compat fixups, well... :)
Most of the individual ones don't matter:
TCSETX/TCSETXF/TCSETXW/TCGETX never did anything,
we don't care about them.
TIOCSERCONFIG has always been broken in compat mode,
not sure who calls it in practice. This is 'setserial autoconfig'.
TIOCGETC/TIOCGETP/TIOCSETC/TIOCSETN/TIOCSETP
are only defined on alpha, mips, powerpc and sparc to start
with. They seem to only be there for compatibility with some
Unix version for those architectures but were never part of
the normal Linux API or the compat set, so I guess they
also don't matter.
The two that I think we may care about are:
TIOCGPTPEER is a fairly recent regression from commit
311fc65c9fb9 ("pty: Repair TIOCGPTPEER") in 4.14 after it was
added in 4.13.
TIOCVHANGUP was introduced to be used by systemd in
commit 3c95c985fa91 ("tty: add TIOCVHANGUP to allow clean tty
shutdown of all ttys").
https://raspberrypi.stackexchange.com/questions/54143
has a bug report noting a problem with Raspbian systemd
that was related to TIOCVHANGUP. I don't think it's the
missing compat line that caused it, but the same system
would try to run TIOCVHANGUP in compat mode on
Raspberry Pi3 when using a 64-bit kernel with raspbian,
so there are definitely callers.
Arnd