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>
This commit is contained in:
Jiri Slaby 2011-07-14 14:35:12 +02:00 committed by Greg Kroah-Hartman
parent e150c4ccbe
commit 6a3e492b6d
2 changed files with 1 additions and 20 deletions

View File

@ -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)
{
@ -249,11 +243,6 @@ static void uart_shutdown(struct tty_struct *tty, struct uart_state *state)
synchronize_irq(uport->irq);
}
/*
* kill off our tasklet
*/
tasklet_kill(&state->tlet);
/*
* Free the transmit buffer page.
*/
@ -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);

View File

@ -384,7 +384,6 @@ struct uart_state {
int pm_state;
struct circ_buf xmit;
struct tasklet_struct tlet;
struct uart_port *uart_port;
};