Skip to content

Commit

Permalink
TTY: serial, remove tasklet for tty_wakeup
Browse files Browse the repository at this point in the history
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>
  • Loading branch information
Jiri Slaby authored and Greg Kroah-Hartman committed Aug 23, 2011
1 parent e150c4c commit 6a3e492
Show file tree
Hide file tree
Showing 2 changed files with 1 addition and 20 deletions.
20 changes: 1 addition & 19 deletions drivers/tty/serial/serial_core.c
Original file line number Diff line number Diff line change
Expand Up @@ -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)
Expand Down Expand Up @@ -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)
{
Expand Down Expand Up @@ -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.
*/
Expand Down Expand Up @@ -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);
Expand Down Expand Up @@ -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);

Expand Down
1 change: 0 additions & 1 deletion include/linux/serial_core.h
Original file line number Diff line number Diff line change
Expand Up @@ -384,7 +384,6 @@ struct uart_state {
int pm_state;
struct circ_buf xmit;

struct tasklet_struct tlet;
struct uart_port *uart_port;
};

Expand Down

0 comments on commit 6a3e492

Please sign in to comment.