diff options
author | Jiri Slaby <jslaby@suse.cz> | 2011-07-14 14:35:12 +0200 |
---|---|---|
committer | Greg Kroah-Hartman <gregkh@suse.de> | 2011-08-23 10:34:06 -0700 |
commit | 6a3e492b6daaf7ec4dc41e51d87d2aae8ff886f2 (patch) | |
tree | d57d4010bbadee3a2d85a09433d49d4f0dbc5a56 | |
parent | e150c4ccbe7246c27b5208599fe9f6677c93b5fe (diff) | |
download | linux-6a3e492b6daaf7ec4dc41e51d87d2aae8ff886f2.tar.gz linux-6a3e492b6daaf7ec4dc41e51d87d2aae8ff886f2.tar.bz2 linux-6a3e492b6daaf7ec4dc41e51d87d2aae8ff886f2.zip |
TTY: serial, remove tasklet for tty_wakeup
tty_wakeup can be called from any context. So there is no need to have
an extra tasklet for calling that. Hence save some space and remove
the tasklet completely.
Signed-off-by: Jiri Slaby <jslaby@suse.cz>
Cc: Alan Cox <alan@linux.intel.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
-rw-r--r-- | drivers/tty/serial/serial_core.c | 20 | ||||
-rw-r--r-- | include/linux/serial_core.h | 1 |
2 files changed, 1 insertions, 20 deletions
diff --git a/drivers/tty/serial/serial_core.c b/drivers/tty/serial/serial_core.c index 2cbf1bd493e2..4786232bc532 100644 --- a/drivers/tty/serial/serial_core.c +++ b/drivers/tty/serial/serial_core.c @@ -72,7 +72,7 @@ void uart_write_wakeup(struct uart_port *port) * closed. No cookie for you. */ BUG_ON(!state); - tasklet_schedule(&state->tlet); + tty_wakeup(state->port.tty); } static void uart_stop(struct tty_struct *tty) @@ -107,12 +107,6 @@ static void uart_start(struct tty_struct *tty) spin_unlock_irqrestore(&port->lock, flags); } -static void uart_tasklet_action(unsigned long data) -{ - struct uart_state *state = (struct uart_state *)data; - tty_wakeup(state->port.tty); -} - static inline void uart_update_mctrl(struct uart_port *port, unsigned int set, unsigned int clear) { @@ -250,11 +244,6 @@ static void uart_shutdown(struct tty_struct *tty, struct uart_state *state) } /* - * kill off our tasklet - */ - tasklet_kill(&state->tlet); - - /* * Free the transmit buffer page. */ if (state->xmit.buf) { @@ -2277,8 +2266,6 @@ int uart_register_driver(struct uart_driver *drv) port->ops = &uart_port_ops; port->close_delay = 500; /* .5 seconds */ port->closing_wait = 30000; /* 30 seconds */ - tasklet_init(&state->tlet, uart_tasklet_action, - (unsigned long)state); } retval = tty_register_driver(normal); @@ -2439,11 +2426,6 @@ int uart_remove_one_port(struct uart_driver *drv, struct uart_port *uport) */ uport->type = PORT_UNKNOWN; - /* - * Kill the tasklet, and free resources. - */ - tasklet_kill(&state->tlet); - state->uart_port = NULL; mutex_unlock(&port_mutex); diff --git a/include/linux/serial_core.h b/include/linux/serial_core.h index a5c31146a337..76e110363745 100644 --- a/include/linux/serial_core.h +++ b/include/linux/serial_core.h @@ -384,7 +384,6 @@ struct uart_state { int pm_state; struct circ_buf xmit; - struct tasklet_struct tlet; struct uart_port *uart_port; }; |