Message ID | 1427810160-15779-4-git-send-email-linux@rasmusvillemoes.dk (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
On Tue, Mar 31, 2015 at 03:55:59PM +0200, Rasmus Villemoes wrote: > tty_name no longer uses the buf parameter, so remove it along with all > the 64 byte stack buffers that used to be passed in. > > Mostly generated by the coccinelle script > > @depends on patch@ > identifier buf; > constant C; > expression tty; > @@ > - char buf[C]; > <+... > - tty_name(tty, buf) > + tty_name(tty) > ...+> > > allmodconfig compiles, so I'm fairly confident the stack buffers > weren't used for other purposes as well. > > Signed-off-by: Rasmus Villemoes <linux@rasmusvillemoes.dk> > --- > drivers/input/serio/serport.c | 5 ++--- I am fine with serport changes. Acked-by: Dmitry Torokhov <dmitry.torokhov@gmail.com> Thanks. > drivers/tty/amiserial.c | 8 ++------ > drivers/tty/cyclades.c | 8 ++------ > drivers/tty/n_gsm.c | 3 +-- > drivers/tty/n_tty.c | 7 ++----- > drivers/tty/serial/crisv10.c | 8 ++------ > drivers/tty/serial/serial_core.c | 4 +--- > drivers/tty/tty_io.c | 28 +++++++++++----------------- > drivers/tty/tty_ioctl.c | 4 +--- > drivers/tty/tty_ldisc.c | 8 +++----- > include/linux/tty.h | 2 +- > 11 files changed, 28 insertions(+), 57 deletions(-) > > diff --git a/drivers/input/serio/serport.c b/drivers/input/serio/serport.c > index 69175b825346..9c927d35c1f5 100644 > --- a/drivers/input/serio/serport.c > +++ b/drivers/input/serio/serport.c > @@ -167,7 +167,6 @@ static ssize_t serport_ldisc_read(struct tty_struct * tty, struct file * file, u > { > struct serport *serport = (struct serport*) tty->disc_data; > struct serio *serio; > - char name[64]; > > if (test_and_set_bit(SERPORT_BUSY, &serport->flags)) > return -EBUSY; > @@ -177,7 +176,7 @@ static ssize_t serport_ldisc_read(struct tty_struct * tty, struct file * file, u > return -ENOMEM; > > strlcpy(serio->name, "Serial port", sizeof(serio->name)); > - snprintf(serio->phys, sizeof(serio->phys), "%s/serio0", tty_name(tty, name)); > + snprintf(serio->phys, sizeof(serio->phys), "%s/serio0", tty_name(tty)); > serio->id = serport->id; > serio->id.type = SERIO_RS232; > serio->write = serport_serio_write; > @@ -187,7 +186,7 @@ static ssize_t serport_ldisc_read(struct tty_struct * tty, struct file * file, u > serio->dev.parent = tty->dev; > > serio_register_port(serport->serio); > - printk(KERN_INFO "serio: Serial port %s\n", tty_name(tty, name)); > + printk(KERN_INFO "serio: Serial port %s\n", tty_name(tty)); > > wait_event_interruptible(serport->wait, test_bit(SERPORT_DEAD, &serport->flags)); > serio_unregister_port(serport->serio); > diff --git a/drivers/tty/amiserial.c b/drivers/tty/amiserial.c > index b2d760055952..894d3a84e285 100644 > --- a/drivers/tty/amiserial.c > +++ b/drivers/tty/amiserial.c > @@ -966,9 +966,7 @@ static void rs_throttle(struct tty_struct * tty) > struct serial_state *info = tty->driver_data; > unsigned long flags; > #ifdef SERIAL_DEBUG_THROTTLE > - char buf[64]; > - > - printk("throttle %s: %d....\n", tty_name(tty, buf), > + printk("throttle %s: %d....\n", tty_name(tty), > tty->ldisc.chars_in_buffer(tty)); > #endif > > @@ -991,9 +989,7 @@ static void rs_unthrottle(struct tty_struct * tty) > struct serial_state *info = tty->driver_data; > unsigned long flags; > #ifdef SERIAL_DEBUG_THROTTLE > - char buf[64]; > - > - printk("unthrottle %s: %d....\n", tty_name(tty, buf), > + printk("unthrottle %s: %d....\n", tty_name(tty), > tty->ldisc.chars_in_buffer(tty)); > #endif > > diff --git a/drivers/tty/cyclades.c b/drivers/tty/cyclades.c > index fd66f57390d0..87f6578c6f4a 100644 > --- a/drivers/tty/cyclades.c > +++ b/drivers/tty/cyclades.c > @@ -2861,9 +2861,7 @@ static void cy_throttle(struct tty_struct *tty) > unsigned long flags; > > #ifdef CY_DEBUG_THROTTLE > - char buf[64]; > - > - printk(KERN_DEBUG "cyc:throttle %s: %ld...ttyC%d\n", tty_name(tty, buf), > + printk(KERN_DEBUG "cyc:throttle %s: %ld...ttyC%d\n", tty_name(tty), > tty->ldisc.chars_in_buffer(tty), info->line); > #endif > > @@ -2902,10 +2900,8 @@ static void cy_unthrottle(struct tty_struct *tty) > unsigned long flags; > > #ifdef CY_DEBUG_THROTTLE > - char buf[64]; > - > printk(KERN_DEBUG "cyc:unthrottle %s: %ld...ttyC%d\n", > - tty_name(tty, buf), tty_chars_in_buffer(tty), info->line); > + tty_name(tty), tty_chars_in_buffer(tty), info->line); > #endif > > if (serial_paranoia_check(info, tty->name, "cy_unthrottle")) > diff --git a/drivers/tty/n_gsm.c b/drivers/tty/n_gsm.c > index c4343764cc5b..9b6d3d5ee51c 100644 > --- a/drivers/tty/n_gsm.c > +++ b/drivers/tty/n_gsm.c > @@ -2274,7 +2274,6 @@ static void gsmld_receive_buf(struct tty_struct *tty, const unsigned char *cp, > const unsigned char *dp; > char *f; > int i; > - char buf[64]; > char flags = TTY_NORMAL; > > if (debug & 4) > @@ -2296,7 +2295,7 @@ static void gsmld_receive_buf(struct tty_struct *tty, const unsigned char *cp, > break; > default: > WARN_ONCE(1, "%s: unknown flag %d\n", > - tty_name(tty, buf), flags); > + tty_name(tty), flags); > break; > } > } > diff --git a/drivers/tty/n_tty.c b/drivers/tty/n_tty.c > index cf6e0f2e1331..54da8f49394d 100644 > --- a/drivers/tty/n_tty.c > +++ b/drivers/tty/n_tty.c > @@ -1179,13 +1179,12 @@ static void n_tty_receive_break(struct tty_struct *tty) > static void n_tty_receive_overrun(struct tty_struct *tty) > { > struct n_tty_data *ldata = tty->disc_data; > - char buf[64]; > > 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, buf), > + tty_name(tty), > ldata->num_overrun); > ldata->overrun_time = jiffies; > ldata->num_overrun = 0; > @@ -1460,8 +1459,6 @@ static void n_tty_receive_char_closing(struct tty_struct *tty, unsigned char c) > static void > n_tty_receive_char_flagged(struct tty_struct *tty, unsigned char c, char flag) > { > - char buf[64]; > - > switch (flag) { > case TTY_BREAK: > n_tty_receive_break(tty); > @@ -1475,7 +1472,7 @@ n_tty_receive_char_flagged(struct tty_struct *tty, unsigned char c, char flag) > break; > default: > printk(KERN_ERR "%s: unknown flag %d\n", > - tty_name(tty, buf), flag); > + tty_name(tty), flag); > break; > } > } > diff --git a/drivers/tty/serial/crisv10.c b/drivers/tty/serial/crisv10.c > index 0c1825b0b41d..568ea0d2d699 100644 > --- a/drivers/tty/serial/crisv10.c > +++ b/drivers/tty/serial/crisv10.c > @@ -3216,9 +3216,7 @@ rs_throttle(struct tty_struct * tty) > { > struct e100_serial *info = (struct e100_serial *)tty->driver_data; > #ifdef SERIAL_DEBUG_THROTTLE > - char buf[64]; > - > - printk("throttle %s: %lu....\n", tty_name(tty, buf), > + printk("throttle %s: %lu....\n", tty_name(tty), > (unsigned long)tty->ldisc.chars_in_buffer(tty)); > #endif > DFLOW(DEBUG_LOG(info->line,"rs_throttle %lu\n", tty->ldisc.chars_in_buffer(tty))); > @@ -3238,9 +3236,7 @@ rs_unthrottle(struct tty_struct * tty) > { > struct e100_serial *info = (struct e100_serial *)tty->driver_data; > #ifdef SERIAL_DEBUG_THROTTLE > - char buf[64]; > - > - printk("unthrottle %s: %lu....\n", tty_name(tty, buf), > + printk("unthrottle %s: %lu....\n", tty_name(tty), > (unsigned long)tty->ldisc.chars_in_buffer(tty)); > #endif > DFLOW(DEBUG_LOG(info->line,"rs_unthrottle ldisc %d\n", tty->ldisc.chars_in_buffer(tty))); > diff --git a/drivers/tty/serial/serial_core.c b/drivers/tty/serial/serial_core.c > index 6a1055ae3437..4e73b6482f0b 100644 > --- a/drivers/tty/serial/serial_core.c > +++ b/drivers/tty/serial/serial_core.c > @@ -894,12 +894,10 @@ static int uart_set_info(struct tty_struct *tty, struct tty_port *port, > * need to rate-limit; it's CAP_SYS_ADMIN only. > */ > if (uport->flags & UPF_SPD_MASK) { > - char buf[64]; > - > dev_notice(uport->dev, > "%s sets custom speed on %s. This is deprecated.\n", > current->comm, > - tty_name(port->tty, buf)); > + tty_name(port->tty)); > } > uart_change_speed(tty, state, NULL); > } > diff --git a/drivers/tty/tty_io.c b/drivers/tty/tty_io.c > index ab549e7bdaa8..96f948dc43a6 100644 > --- a/drivers/tty/tty_io.c > +++ b/drivers/tty/tty_io.c > @@ -235,7 +235,6 @@ static void tty_del_file(struct file *file) > /** > * tty_name - return tty naming > * @tty: tty structure > - * @buf: unused > * > * Convert a tty structure into a name. The name reflects the kernel > * naming policy and if udev is in use may not reflect user space > @@ -243,7 +242,7 @@ static void tty_del_file(struct file *file) > * Locking: none > */ > > -const char *tty_name(const struct tty_struct *tty, char *buf) > +const char *tty_name(const struct tty_struct *tty) > { > if (!tty) /* Hmm. NULL pointer. That's fun. */ > return "NULL tty"; > @@ -768,8 +767,7 @@ static void do_tty_hangup(struct work_struct *work) > void tty_hangup(struct tty_struct *tty) > { > #ifdef TTY_DEBUG_HANGUP > - char buf[64]; > - printk(KERN_DEBUG "%s hangup...\n", tty_name(tty, buf)); > + printk(KERN_DEBUG "%s hangup...\n", tty_name(tty)); > #endif > schedule_work(&tty->hangup_work); > } > @@ -788,9 +786,7 @@ EXPORT_SYMBOL(tty_hangup); > void tty_vhangup(struct tty_struct *tty) > { > #ifdef TTY_DEBUG_HANGUP > - char buf[64]; > - > - printk(KERN_DEBUG "%s vhangup...\n", tty_name(tty, buf)); > + printk(KERN_DEBUG "%s vhangup...\n", tty_name(tty)); > #endif > __tty_hangup(tty, 0); > } > @@ -829,9 +825,7 @@ void tty_vhangup_self(void) > static void tty_vhangup_session(struct tty_struct *tty) > { > #ifdef TTY_DEBUG_HANGUP > - char buf[64]; > - > - printk(KERN_DEBUG "%s vhangup session...\n", tty_name(tty, buf)); > + printk(KERN_DEBUG "%s vhangup session...\n", tty_name(tty)); > #endif > __tty_hangup(tty, 1); > } > @@ -1761,7 +1755,6 @@ int tty_release(struct inode *inode, struct file *filp) > struct tty_struct *o_tty = NULL; > int do_sleep, final; > int idx; > - char buf[64]; > long timeout = 0; > int once = 1; > > @@ -1785,7 +1778,7 @@ int tty_release(struct inode *inode, struct file *filp) > > #ifdef TTY_DEBUG_HANGUP > printk(KERN_DEBUG "%s: %s (tty count=%d)...\n", __func__, > - tty_name(tty, buf), tty->count); > + tty_name(tty), tty->count); > #endif > > if (tty->ops->close) > @@ -1836,7 +1829,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, buf)); > + __func__, tty_name(tty)); > } > schedule_timeout_killable(timeout); > if (timeout < 120 * HZ) > @@ -1848,13 +1841,13 @@ 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, buf)); > + __func__, o_tty->count, tty_name(o_tty)); > 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, buf)); > + __func__, tty->count, tty_name(tty)); > tty->count = 0; > } > > @@ -1897,7 +1890,7 @@ int tty_release(struct inode *inode, struct file *filp) > return 0; > > #ifdef TTY_DEBUG_HANGUP > - printk(KERN_DEBUG "%s: %s: final close\n", __func__, tty_name(tty, buf)); > + printk(KERN_DEBUG "%s: %s: final close\n", __func__, tty_name(tty)); > #endif > /* > * Ask the line discipline code to release its structures > @@ -1908,7 +1901,8 @@ int tty_release(struct inode *inode, struct file *filp) > tty_flush_works(tty); > > #ifdef TTY_DEBUG_HANGUP > - printk(KERN_DEBUG "%s: %s: freeing structure...\n", __func__, tty_name(tty, buf)); > + printk(KERN_DEBUG "%s: %s: freeing structure...\n", __func__, > + tty_name(tty)); > #endif > /* > * The release_tty function takes care of the details of clearing > diff --git a/drivers/tty/tty_ioctl.c b/drivers/tty/tty_ioctl.c > index 632fc8152061..e590207e9c0a 100644 > --- a/drivers/tty/tty_ioctl.c > +++ b/drivers/tty/tty_ioctl.c > @@ -211,9 +211,7 @@ int tty_unthrottle_safe(struct tty_struct *tty) > void tty_wait_until_sent(struct tty_struct *tty, long timeout) > { > #ifdef TTY_DEBUG_WAIT_UNTIL_SENT > - char buf[64]; > - > - printk(KERN_DEBUG "%s wait until sent...\n", tty_name(tty, buf)); > + printk(KERN_DEBUG "%s wait until sent...\n", tty_name(tty)); > #endif > if (!timeout) > timeout = MAX_SCHEDULE_TIMEOUT; > diff --git a/drivers/tty/tty_ldisc.c b/drivers/tty/tty_ldisc.c > index 3737f55272d2..c07fb5d9bcf9 100644 > --- a/drivers/tty/tty_ldisc.c > +++ b/drivers/tty/tty_ldisc.c > @@ -22,9 +22,8 @@ > #undef LDISC_DEBUG_HANGUP > > #ifdef LDISC_DEBUG_HANGUP > -#define tty_ldisc_debug(tty, f, args...) ({ \ > - char __b[64]; \ > - printk(KERN_DEBUG "%s: %s: " f, __func__, tty_name(tty, __b), ##args); \ > +#define tty_ldisc_debug(tty, f, args...) ({ \ > + printk(KERN_DEBUG "%s: %s: " f, __func__, tty_name(tty), ##args); \ > }) > #else > #define tty_ldisc_debug(tty, f, args...) > @@ -483,7 +482,6 @@ static void tty_ldisc_close(struct tty_struct *tty, struct tty_ldisc *ld) > > static void tty_ldisc_restore(struct tty_struct *tty, struct tty_ldisc *old) > { > - char buf[64]; > struct tty_ldisc *new_ldisc; > int r; > > @@ -504,7 +502,7 @@ static void tty_ldisc_restore(struct tty_struct *tty, struct tty_ldisc *old) > if (r < 0) > panic("Couldn't open N_TTY ldisc for " > "%s --- error %d.", > - tty_name(tty, buf), r); > + tty_name(tty), r); > } > } > > diff --git a/include/linux/tty.h b/include/linux/tty.h > index 8771cc4faf9f..f0fc326cf08e 100644 > --- a/include/linux/tty.h > +++ b/include/linux/tty.h > @@ -421,7 +421,7 @@ static inline struct tty_struct *tty_kref_get(struct tty_struct *tty) > > extern int tty_paranoia_check(struct tty_struct *tty, struct inode *inode, > const char *routine); > -extern const char *tty_name(const struct tty_struct *tty, char *buf); > +extern const char *tty_name(const struct tty_struct *tty); > extern void tty_wait_until_sent(struct tty_struct *tty, long timeout); > extern int tty_check_change(struct tty_struct *tty); > extern void __stop_tty(struct tty_struct *tty); > -- > 2.1.3 >
On Tue, Mar 31, 2015 at 03:55:59PM +0200, Rasmus Villemoes wrote: > tty_name no longer uses the buf parameter, so remove it along with all > the 64 byte stack buffers that used to be passed in. > > Mostly generated by the coccinelle script > > @depends on patch@ > identifier buf; > constant C; > expression tty; > @@ > - char buf[C]; > <+... > - tty_name(tty, buf) > + tty_name(tty) > ...+> > > allmodconfig compiles, so I'm fairly confident the stack buffers > weren't used for other purposes as well. > > Signed-off-by: Rasmus Villemoes <linux@rasmusvillemoes.dk> For the CRISv10 driver: Acked-by: Jesper Nilsson <jesper.nilsson@axis.com> /^JN - Jesper Nilsson
diff --git a/drivers/input/serio/serport.c b/drivers/input/serio/serport.c index 69175b825346..9c927d35c1f5 100644 --- a/drivers/input/serio/serport.c +++ b/drivers/input/serio/serport.c @@ -167,7 +167,6 @@ static ssize_t serport_ldisc_read(struct tty_struct * tty, struct file * file, u { struct serport *serport = (struct serport*) tty->disc_data; struct serio *serio; - char name[64]; if (test_and_set_bit(SERPORT_BUSY, &serport->flags)) return -EBUSY; @@ -177,7 +176,7 @@ static ssize_t serport_ldisc_read(struct tty_struct * tty, struct file * file, u return -ENOMEM; strlcpy(serio->name, "Serial port", sizeof(serio->name)); - snprintf(serio->phys, sizeof(serio->phys), "%s/serio0", tty_name(tty, name)); + snprintf(serio->phys, sizeof(serio->phys), "%s/serio0", tty_name(tty)); serio->id = serport->id; serio->id.type = SERIO_RS232; serio->write = serport_serio_write; @@ -187,7 +186,7 @@ static ssize_t serport_ldisc_read(struct tty_struct * tty, struct file * file, u serio->dev.parent = tty->dev; serio_register_port(serport->serio); - printk(KERN_INFO "serio: Serial port %s\n", tty_name(tty, name)); + printk(KERN_INFO "serio: Serial port %s\n", tty_name(tty)); wait_event_interruptible(serport->wait, test_bit(SERPORT_DEAD, &serport->flags)); serio_unregister_port(serport->serio); diff --git a/drivers/tty/amiserial.c b/drivers/tty/amiserial.c index b2d760055952..894d3a84e285 100644 --- a/drivers/tty/amiserial.c +++ b/drivers/tty/amiserial.c @@ -966,9 +966,7 @@ static void rs_throttle(struct tty_struct * tty) struct serial_state *info = tty->driver_data; unsigned long flags; #ifdef SERIAL_DEBUG_THROTTLE - char buf[64]; - - printk("throttle %s: %d....\n", tty_name(tty, buf), + printk("throttle %s: %d....\n", tty_name(tty), tty->ldisc.chars_in_buffer(tty)); #endif @@ -991,9 +989,7 @@ static void rs_unthrottle(struct tty_struct * tty) struct serial_state *info = tty->driver_data; unsigned long flags; #ifdef SERIAL_DEBUG_THROTTLE - char buf[64]; - - printk("unthrottle %s: %d....\n", tty_name(tty, buf), + printk("unthrottle %s: %d....\n", tty_name(tty), tty->ldisc.chars_in_buffer(tty)); #endif diff --git a/drivers/tty/cyclades.c b/drivers/tty/cyclades.c index fd66f57390d0..87f6578c6f4a 100644 --- a/drivers/tty/cyclades.c +++ b/drivers/tty/cyclades.c @@ -2861,9 +2861,7 @@ static void cy_throttle(struct tty_struct *tty) unsigned long flags; #ifdef CY_DEBUG_THROTTLE - char buf[64]; - - printk(KERN_DEBUG "cyc:throttle %s: %ld...ttyC%d\n", tty_name(tty, buf), + printk(KERN_DEBUG "cyc:throttle %s: %ld...ttyC%d\n", tty_name(tty), tty->ldisc.chars_in_buffer(tty), info->line); #endif @@ -2902,10 +2900,8 @@ static void cy_unthrottle(struct tty_struct *tty) unsigned long flags; #ifdef CY_DEBUG_THROTTLE - char buf[64]; - printk(KERN_DEBUG "cyc:unthrottle %s: %ld...ttyC%d\n", - tty_name(tty, buf), tty_chars_in_buffer(tty), info->line); + tty_name(tty), tty_chars_in_buffer(tty), info->line); #endif if (serial_paranoia_check(info, tty->name, "cy_unthrottle")) diff --git a/drivers/tty/n_gsm.c b/drivers/tty/n_gsm.c index c4343764cc5b..9b6d3d5ee51c 100644 --- a/drivers/tty/n_gsm.c +++ b/drivers/tty/n_gsm.c @@ -2274,7 +2274,6 @@ static void gsmld_receive_buf(struct tty_struct *tty, const unsigned char *cp, const unsigned char *dp; char *f; int i; - char buf[64]; char flags = TTY_NORMAL; if (debug & 4) @@ -2296,7 +2295,7 @@ static void gsmld_receive_buf(struct tty_struct *tty, const unsigned char *cp, break; default: WARN_ONCE(1, "%s: unknown flag %d\n", - tty_name(tty, buf), flags); + tty_name(tty), flags); break; } } diff --git a/drivers/tty/n_tty.c b/drivers/tty/n_tty.c index cf6e0f2e1331..54da8f49394d 100644 --- a/drivers/tty/n_tty.c +++ b/drivers/tty/n_tty.c @@ -1179,13 +1179,12 @@ static void n_tty_receive_break(struct tty_struct *tty) static void n_tty_receive_overrun(struct tty_struct *tty) { struct n_tty_data *ldata = tty->disc_data; - char buf[64]; 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, buf), + tty_name(tty), ldata->num_overrun); ldata->overrun_time = jiffies; ldata->num_overrun = 0; @@ -1460,8 +1459,6 @@ static void n_tty_receive_char_closing(struct tty_struct *tty, unsigned char c) static void n_tty_receive_char_flagged(struct tty_struct *tty, unsigned char c, char flag) { - char buf[64]; - switch (flag) { case TTY_BREAK: n_tty_receive_break(tty); @@ -1475,7 +1472,7 @@ n_tty_receive_char_flagged(struct tty_struct *tty, unsigned char c, char flag) break; default: printk(KERN_ERR "%s: unknown flag %d\n", - tty_name(tty, buf), flag); + tty_name(tty), flag); break; } } diff --git a/drivers/tty/serial/crisv10.c b/drivers/tty/serial/crisv10.c index 0c1825b0b41d..568ea0d2d699 100644 --- a/drivers/tty/serial/crisv10.c +++ b/drivers/tty/serial/crisv10.c @@ -3216,9 +3216,7 @@ rs_throttle(struct tty_struct * tty) { struct e100_serial *info = (struct e100_serial *)tty->driver_data; #ifdef SERIAL_DEBUG_THROTTLE - char buf[64]; - - printk("throttle %s: %lu....\n", tty_name(tty, buf), + printk("throttle %s: %lu....\n", tty_name(tty), (unsigned long)tty->ldisc.chars_in_buffer(tty)); #endif DFLOW(DEBUG_LOG(info->line,"rs_throttle %lu\n", tty->ldisc.chars_in_buffer(tty))); @@ -3238,9 +3236,7 @@ rs_unthrottle(struct tty_struct * tty) { struct e100_serial *info = (struct e100_serial *)tty->driver_data; #ifdef SERIAL_DEBUG_THROTTLE - char buf[64]; - - printk("unthrottle %s: %lu....\n", tty_name(tty, buf), + printk("unthrottle %s: %lu....\n", tty_name(tty), (unsigned long)tty->ldisc.chars_in_buffer(tty)); #endif DFLOW(DEBUG_LOG(info->line,"rs_unthrottle ldisc %d\n", tty->ldisc.chars_in_buffer(tty))); diff --git a/drivers/tty/serial/serial_core.c b/drivers/tty/serial/serial_core.c index 6a1055ae3437..4e73b6482f0b 100644 --- a/drivers/tty/serial/serial_core.c +++ b/drivers/tty/serial/serial_core.c @@ -894,12 +894,10 @@ static int uart_set_info(struct tty_struct *tty, struct tty_port *port, * need to rate-limit; it's CAP_SYS_ADMIN only. */ if (uport->flags & UPF_SPD_MASK) { - char buf[64]; - dev_notice(uport->dev, "%s sets custom speed on %s. This is deprecated.\n", current->comm, - tty_name(port->tty, buf)); + tty_name(port->tty)); } uart_change_speed(tty, state, NULL); } diff --git a/drivers/tty/tty_io.c b/drivers/tty/tty_io.c index ab549e7bdaa8..96f948dc43a6 100644 --- a/drivers/tty/tty_io.c +++ b/drivers/tty/tty_io.c @@ -235,7 +235,6 @@ static void tty_del_file(struct file *file) /** * tty_name - return tty naming * @tty: tty structure - * @buf: unused * * Convert a tty structure into a name. The name reflects the kernel * naming policy and if udev is in use may not reflect user space @@ -243,7 +242,7 @@ static void tty_del_file(struct file *file) * Locking: none */ -const char *tty_name(const struct tty_struct *tty, char *buf) +const char *tty_name(const struct tty_struct *tty) { if (!tty) /* Hmm. NULL pointer. That's fun. */ return "NULL tty"; @@ -768,8 +767,7 @@ static void do_tty_hangup(struct work_struct *work) void tty_hangup(struct tty_struct *tty) { #ifdef TTY_DEBUG_HANGUP - char buf[64]; - printk(KERN_DEBUG "%s hangup...\n", tty_name(tty, buf)); + printk(KERN_DEBUG "%s hangup...\n", tty_name(tty)); #endif schedule_work(&tty->hangup_work); } @@ -788,9 +786,7 @@ EXPORT_SYMBOL(tty_hangup); void tty_vhangup(struct tty_struct *tty) { #ifdef TTY_DEBUG_HANGUP - char buf[64]; - - printk(KERN_DEBUG "%s vhangup...\n", tty_name(tty, buf)); + printk(KERN_DEBUG "%s vhangup...\n", tty_name(tty)); #endif __tty_hangup(tty, 0); } @@ -829,9 +825,7 @@ void tty_vhangup_self(void) static void tty_vhangup_session(struct tty_struct *tty) { #ifdef TTY_DEBUG_HANGUP - char buf[64]; - - printk(KERN_DEBUG "%s vhangup session...\n", tty_name(tty, buf)); + printk(KERN_DEBUG "%s vhangup session...\n", tty_name(tty)); #endif __tty_hangup(tty, 1); } @@ -1761,7 +1755,6 @@ int tty_release(struct inode *inode, struct file *filp) struct tty_struct *o_tty = NULL; int do_sleep, final; int idx; - char buf[64]; long timeout = 0; int once = 1; @@ -1785,7 +1778,7 @@ int tty_release(struct inode *inode, struct file *filp) #ifdef TTY_DEBUG_HANGUP printk(KERN_DEBUG "%s: %s (tty count=%d)...\n", __func__, - tty_name(tty, buf), tty->count); + tty_name(tty), tty->count); #endif if (tty->ops->close) @@ -1836,7 +1829,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, buf)); + __func__, tty_name(tty)); } schedule_timeout_killable(timeout); if (timeout < 120 * HZ) @@ -1848,13 +1841,13 @@ 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, buf)); + __func__, o_tty->count, tty_name(o_tty)); 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, buf)); + __func__, tty->count, tty_name(tty)); tty->count = 0; } @@ -1897,7 +1890,7 @@ int tty_release(struct inode *inode, struct file *filp) return 0; #ifdef TTY_DEBUG_HANGUP - printk(KERN_DEBUG "%s: %s: final close\n", __func__, tty_name(tty, buf)); + printk(KERN_DEBUG "%s: %s: final close\n", __func__, tty_name(tty)); #endif /* * Ask the line discipline code to release its structures @@ -1908,7 +1901,8 @@ int tty_release(struct inode *inode, struct file *filp) tty_flush_works(tty); #ifdef TTY_DEBUG_HANGUP - printk(KERN_DEBUG "%s: %s: freeing structure...\n", __func__, tty_name(tty, buf)); + printk(KERN_DEBUG "%s: %s: freeing structure...\n", __func__, + tty_name(tty)); #endif /* * The release_tty function takes care of the details of clearing diff --git a/drivers/tty/tty_ioctl.c b/drivers/tty/tty_ioctl.c index 632fc8152061..e590207e9c0a 100644 --- a/drivers/tty/tty_ioctl.c +++ b/drivers/tty/tty_ioctl.c @@ -211,9 +211,7 @@ int tty_unthrottle_safe(struct tty_struct *tty) void tty_wait_until_sent(struct tty_struct *tty, long timeout) { #ifdef TTY_DEBUG_WAIT_UNTIL_SENT - char buf[64]; - - printk(KERN_DEBUG "%s wait until sent...\n", tty_name(tty, buf)); + printk(KERN_DEBUG "%s wait until sent...\n", tty_name(tty)); #endif if (!timeout) timeout = MAX_SCHEDULE_TIMEOUT; diff --git a/drivers/tty/tty_ldisc.c b/drivers/tty/tty_ldisc.c index 3737f55272d2..c07fb5d9bcf9 100644 --- a/drivers/tty/tty_ldisc.c +++ b/drivers/tty/tty_ldisc.c @@ -22,9 +22,8 @@ #undef LDISC_DEBUG_HANGUP #ifdef LDISC_DEBUG_HANGUP -#define tty_ldisc_debug(tty, f, args...) ({ \ - char __b[64]; \ - printk(KERN_DEBUG "%s: %s: " f, __func__, tty_name(tty, __b), ##args); \ +#define tty_ldisc_debug(tty, f, args...) ({ \ + printk(KERN_DEBUG "%s: %s: " f, __func__, tty_name(tty), ##args); \ }) #else #define tty_ldisc_debug(tty, f, args...) @@ -483,7 +482,6 @@ static void tty_ldisc_close(struct tty_struct *tty, struct tty_ldisc *ld) static void tty_ldisc_restore(struct tty_struct *tty, struct tty_ldisc *old) { - char buf[64]; struct tty_ldisc *new_ldisc; int r; @@ -504,7 +502,7 @@ static void tty_ldisc_restore(struct tty_struct *tty, struct tty_ldisc *old) if (r < 0) panic("Couldn't open N_TTY ldisc for " "%s --- error %d.", - tty_name(tty, buf), r); + tty_name(tty), r); } } diff --git a/include/linux/tty.h b/include/linux/tty.h index 8771cc4faf9f..f0fc326cf08e 100644 --- a/include/linux/tty.h +++ b/include/linux/tty.h @@ -421,7 +421,7 @@ static inline struct tty_struct *tty_kref_get(struct tty_struct *tty) extern int tty_paranoia_check(struct tty_struct *tty, struct inode *inode, const char *routine); -extern const char *tty_name(const struct tty_struct *tty, char *buf); +extern const char *tty_name(const struct tty_struct *tty); extern void tty_wait_until_sent(struct tty_struct *tty, long timeout); extern int tty_check_change(struct tty_struct *tty); extern void __stop_tty(struct tty_struct *tty);
tty_name no longer uses the buf parameter, so remove it along with all the 64 byte stack buffers that used to be passed in. Mostly generated by the coccinelle script @depends on patch@ identifier buf; constant C; expression tty; @@ - char buf[C]; <+... - tty_name(tty, buf) + tty_name(tty) ...+> allmodconfig compiles, so I'm fairly confident the stack buffers weren't used for other purposes as well. Signed-off-by: Rasmus Villemoes <linux@rasmusvillemoes.dk> --- drivers/input/serio/serport.c | 5 ++--- drivers/tty/amiserial.c | 8 ++------ drivers/tty/cyclades.c | 8 ++------ drivers/tty/n_gsm.c | 3 +-- drivers/tty/n_tty.c | 7 ++----- drivers/tty/serial/crisv10.c | 8 ++------ drivers/tty/serial/serial_core.c | 4 +--- drivers/tty/tty_io.c | 28 +++++++++++----------------- drivers/tty/tty_ioctl.c | 4 +--- drivers/tty/tty_ldisc.c | 8 +++----- include/linux/tty.h | 2 +- 11 files changed, 28 insertions(+), 57 deletions(-)