tty: Define tty_*() printk macros
authorPeter Hurley <peter@hurleysoftware.com>
Sun, 8 Nov 2015 18:01:13 +0000 (13:01 -0500)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Mon, 14 Dec 2015 03:59:48 +0000 (19:59 -0800)
Since not all ttys are devices (eg., SysV ptys), dev_*() printk macros
cannot be used. Define tty_*() printk macros that output in similar
format to dev_*() macros (ie., <driver> <tty>: .....).

Transform the most-trivial printk( LEVEL ...) usage to tty_*() usage.
NB: The function name has been eliminated from messages with unique
context, or prefixed to the format when given.

Signed-off-by: Peter Hurley <peter@hurleysoftware.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/tty/n_tty.c
drivers/tty/tty_io.c
drivers/tty/tty_port.c
include/linux/tty.h

index ed77614..c37c15d 100644 (file)
@@ -1201,9 +1201,7 @@ static void n_tty_receive_overrun(struct tty_struct *tty)
        ldata->num_overrun++;
        if (time_after(jiffies, ldata->overrun_time + HZ) ||
                        time_after(ldata->overrun_time, jiffies)) {
-               printk(KERN_WARNING "%s: %d input overrun(s)\n",
-                       tty_name(tty),
-                       ldata->num_overrun);
+               tty_warn(tty, "%d input overrun(s)\n", ldata->num_overrun);
                ldata->overrun_time = jiffies;
                ldata->num_overrun = 0;
        }
@@ -1486,8 +1484,7 @@ n_tty_receive_char_flagged(struct tty_struct *tty, unsigned char c, char flag)
                n_tty_receive_overrun(tty);
                break;
        default:
-               printk(KERN_ERR "%s: unknown flag %d\n",
-                      tty_name(tty), flag);
+               tty_err(tty, "unknown flag %d\n", flag);
                break;
        }
 }
index ef8ee34..c9d3989 100644 (file)
@@ -300,9 +300,8 @@ static int check_tty_count(struct tty_struct *tty, const char *routine)
            tty->link && tty->link->count)
                count++;
        if (tty->count != count) {
-               printk(KERN_WARNING "Warning: dev (%s) tty->count(%d) "
-                                   "!= #fd's(%d) in %s\n",
-                      tty->name, tty->count, count, routine);
+               tty_warn(tty, "%s: tty->count(%d) != #fd's(%d)\n",
+                        routine, tty->count, count);
                return count;
        }
 #endif
@@ -427,10 +426,8 @@ int __tty_check_change(struct tty_struct *tty, int sig)
        }
        rcu_read_unlock();
 
-       if (!tty_pgrp) {
-               pr_warn("%s: tty_check_change: sig=%d, tty->pgrp == NULL!\n",
-                       tty_name(tty), sig);
-       }
+       if (!tty_pgrp)
+               tty_warn(tty, "sig=%d, tty->pgrp == NULL!\n", sig);
 
        return ret;
 }
@@ -1246,8 +1243,7 @@ static ssize_t tty_write(struct file *file, const char __user *buf,
                        return -EIO;
        /* Short term debug to catch buggy drivers */
        if (tty->ops->write_room == NULL)
-               printk(KERN_ERR "tty driver %s lacks a write_room method.\n",
-                       tty->driver->name);
+               tty_err(tty, "missing write_room method\n");
        ld = tty_ldisc_ref_wait(tty);
        if (!ld->ops->write)
                ret = -EIO;
@@ -1568,8 +1564,8 @@ err_module_put:
        /* call the tty release_tty routine to clean out this slot */
 err_release_tty:
        tty_unlock(tty);
-       printk_ratelimited(KERN_INFO "tty_init_dev: ldisc open failed, "
-                                "clearing slot %d\n", idx);
+       tty_info_ratelimited(tty, "ldisc open failed (%d), clearing slot %d\n",
+                            retval, idx);
        release_tty(tty, idx);
        return ERR_PTR(retval);
 }
@@ -1842,8 +1838,7 @@ int tty_release(struct inode *inode, struct file *filp)
 
                if (once) {
                        once = 0;
-                       printk(KERN_WARNING "%s: %s: read/write wait queue active!\n",
-                              __func__, tty_name(tty));
+                       tty_warn(tty, "read/write wait queue active!\n");
                }
                schedule_timeout_killable(timeout);
                if (timeout < 120 * HZ)
@@ -1854,14 +1849,12 @@ int tty_release(struct inode *inode, struct file *filp)
 
        if (o_tty) {
                if (--o_tty->count < 0) {
-                       printk(KERN_WARNING "%s: bad pty slave count (%d) for %s\n",
-                               __func__, o_tty->count, tty_name(o_tty));
+                       tty_warn(tty, "bad slave count (%d)\n", o_tty->count);
                        o_tty->count = 0;
                }
        }
        if (--tty->count < 0) {
-               printk(KERN_WARNING "%s: bad tty->count (%d) for %s\n",
-                               __func__, tty->count, tty_name(tty));
+               tty_warn(tty, "bad tty->count (%d)\n", tty->count);
                tty->count = 0;
        }
 
index 482f33f..846ed48 100644 (file)
@@ -462,14 +462,13 @@ int tty_port_close_start(struct tty_port *port,
 
        spin_lock_irqsave(&port->lock, flags);
        if (tty->count == 1 && port->count != 1) {
-               printk(KERN_WARNING
-                   "tty_port_close_start: tty->count = 1 port count = %d.\n",
-                                                               port->count);
+               tty_warn(tty, "%s: tty->count = 1 port count = %d\n", __func__,
+                        port->count);
                port->count = 1;
        }
        if (--port->count < 0) {
-               printk(KERN_WARNING "tty_port_close_start: count = %d\n",
-                                                               port->count);
+               tty_warn(tty, "%s: bad port count (%d)\n", __func__,
+                        port->count);
                port->count = 0;
        }
 
index a9c1af9..f578e84 100644 (file)
@@ -666,7 +666,17 @@ static inline void proc_tty_register_driver(struct tty_driver *d) {}
 static inline void proc_tty_unregister_driver(struct tty_driver *d) {}
 #endif
 
+#define tty_msg(fn, tty, f, ...) \
+       fn("%s %s: " f, tty_driver_name(tty), tty_name(tty), ##__VA_ARGS__)
+
 #define tty_debug(tty, f, ...) \
-       pr_debug("%s: %s: " f, tty_name(tty), __func__, ##__VA_ARGS__)
+               tty_msg(pr_debug, tty, "%s:" f, __func__, ##__VA_ARGS__)
+#define tty_info(tty, f, ...)  tty_msg(pr_info, tty, f, ##__VA_ARGS__)
+#define tty_notice(tty, f, ...)        tty_msg(pr_notice, tty, f, ##__VA_ARGS__)
+#define tty_warn(tty, f, ...)  tty_msg(pr_warn, tty, f, ##__VA_ARGS__)
+#define tty_err(tty, f, ...)   tty_msg(pr_err, tty, f, ##__VA_ARGS__)
+
+#define tty_info_ratelimited(tty, f, ...) \
+               tty_msg(pr_info_ratelimited, tty, f, ##__VA_ARGS__)
 
 #endif