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. * closed. No cookie for you.
*/ */
BUG_ON(!state); BUG_ON(!state);
tasklet_schedule(&state->tlet); tty_wakeup(state->port.tty);
} }
static void uart_stop(struct tty_struct *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); 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 static inline void
uart_update_mctrl(struct uart_port *port, unsigned int set, unsigned int clear) 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); synchronize_irq(uport->irq);
} }
/*
* kill off our tasklet
*/
tasklet_kill(&state->tlet);
/* /*
* Free the transmit buffer page. * Free the transmit buffer page.
*/ */
@ -2277,8 +2266,6 @@ int uart_register_driver(struct uart_driver *drv)
port->ops = &uart_port_ops; port->ops = &uart_port_ops;
port->close_delay = 500; /* .5 seconds */ port->close_delay = 500; /* .5 seconds */
port->closing_wait = 30000; /* 30 seconds */ port->closing_wait = 30000; /* 30 seconds */
tasklet_init(&state->tlet, uart_tasklet_action,
(unsigned long)state);
} }
retval = tty_register_driver(normal); 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; uport->type = PORT_UNKNOWN;
/*
* Kill the tasklet, and free resources.
*/
tasklet_kill(&state->tlet);
state->uart_port = NULL; state->uart_port = NULL;
mutex_unlock(&port_mutex); mutex_unlock(&port_mutex);

View file

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