blob: 4439e025adcd39bd378e8f597a3fecb41f63583f [file] [log] [blame]
From 292c434e143ae88e43862623cff949e143ee4a9d Mon Sep 17 00:00:00 2001
From: Eric Biggers <>
Date: Mon, 24 Feb 2020 10:20:44 -0800
Subject: [PATCH] tty: fix compat TIOCGSERIAL checking wrong function ptr
commit 6e622cd8bd888c7fa3ee2b7dfb3514ab53b21570 upstream.
Commit 77654350306a ("take compat TIOC[SG]SERIAL treatment into
tty_compat_ioctl()") changed the compat version of TIOCGSERIAL to start
checking for the presence of the ->set_serial function pointer rather
than ->get_serial. This appears to be a copy-and-paste error, since
->get_serial is the function pointer that is called as well as the
pointer that is checked by the non-compat version of TIOCGSERIAL.
Fix this by checking the correct function pointer.
Fixes: 77654350306a ("take compat TIOC[SG]SERIAL treatment into tty_compat_ioctl()")
Cc: <> # v4.20+
Signed-off-by: Eric Biggers <>
Acked-by: Jiri Slaby <>
Signed-off-by: Greg Kroah-Hartman <>
Signed-off-by: Paul Gortmaker <>
diff --git a/drivers/tty/tty_io.c b/drivers/tty/tty_io.c
index ca439e220f7e..d266dd4bdff1 100644
--- a/drivers/tty/tty_io.c
+++ b/drivers/tty/tty_io.c
@@ -2733,7 +2733,7 @@ static int compat_tty_tiocgserial(struct tty_struct *tty,
memset(&v, 0, sizeof(v));
memset(&v32, 0, sizeof(v32));
- if (!tty->ops->set_serial)
+ if (!tty->ops->get_serial)
return -ENOTTY;
err = tty->ops->get_serial(tty, &v);
if (!err) {