From 16064db6eb64663f8a15f449a7e3bc69ed885320 Mon Sep 17 00:00:00 2001 From: Jiri Slaby Date: Fri, 17 Oct 2014 11:05:02 +0200 Subject: [PATCH 1/1] tty: warn on deprecated flags Not-signed-off-by: Jiri Slaby --- drivers/tty/tty_io.c | 16 ++++++++++++++++ include/uapi/linux/tty_flags.h | 2 ++ 2 files changed, 18 insertions(+) diff --git a/drivers/tty/tty_io.c b/drivers/tty/tty_io.c index 8fbad3410c75..46b2b3b3555c 100644 --- a/drivers/tty/tty_io.c +++ b/drivers/tty/tty_io.c @@ -2830,6 +2830,22 @@ long tty_ioctl(struct file *file, unsigned int cmd, unsigned long arg) break; } break; + case TIOCSSERIAL: + { + static DEFINE_RATELIMIT_STATE(depr_flags, + DEFAULT_RATELIMIT_INTERVAL, + DEFAULT_RATELIMIT_BURST); + int flags; + char comm[TASK_COMM_LEN]; + if (!get_user(flags, (int __user *)arg) && + (flags & ASYNC_DEPRECATED) && + __ratelimit(&depr_flags)) { + pr_warning("%s is using deprecated flags: %.8x\n", + get_task_comm(comm, current), + flags & ASYNC_DEPRECATED); + } + } + break; } if (tty->ops->ioctl) { retval = (tty->ops->ioctl)(tty, cmd, arg); diff --git a/include/uapi/linux/tty_flags.h b/include/uapi/linux/tty_flags.h index eefcb483a2c0..879b91713e7c 100644 --- a/include/uapi/linux/tty_flags.h +++ b/include/uapi/linux/tty_flags.h @@ -59,6 +59,8 @@ #define ASYNC_AUTOPROBE (1U << ASYNCB_AUTOPROBE) #define ASYNC_FLAGS ((1U << (ASYNCB_LAST_USER + 1)) - 1) +#define ASYNC_DEPRECATED (ASYNC_SESSION_LOCKOUT | ASYNC_PGRP_LOCKOUT | \ + ASYNC_CALLOUT_NOHUP | ASYNC_AUTOPROBE) #define ASYNC_USR_MASK (ASYNC_SPD_MASK|ASYNC_CALLOUT_NOHUP| \ ASYNC_LOW_LATENCY) #define ASYNC_SPD_CUST (ASYNC_SPD_HI|ASYNC_SPD_VHI) -- 2.1.1