serial: trim locking on the helpers
authorAlan Cox <alan@linux.intel.com>
Tue, 1 Jun 2010 20:52:59 +0000 (22:52 +0200)
committerGreg Kroah-Hartman <gregkh@suse.de>
Tue, 10 Aug 2010 20:47:42 +0000 (13:47 -0700)
The port mutex protects port->tty, but these paths never need to walk from
port->tty. They do need the low level lock as the API expects that but they
already also take it.

Thus we can drop the extra mutex lock calls here.

Signed-off-by: Alan Cox <alan@linux.intel.com>
Cc: Arnd Bergmann <arnd@arndb.de>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
drivers/serial/serial_core.c

index 2379045e08710ecaddb5cf19c3043ad8b794aa99..0603e0d46d3300d1534cc39e7f48df2f6f263d56 100644 (file)
@@ -1506,12 +1506,10 @@ static int uart_carrier_raised(struct tty_port *port)
        struct uart_state *state = container_of(port, struct uart_state, port);
        struct uart_port *uport = state->uart_port;
        int mctrl;
-       mutex_lock(&port->mutex);
        spin_lock_irq(&uport->lock);
        uport->ops->enable_ms(uport);
        mctrl = uport->ops->get_mctrl(uport);
        spin_unlock_irq(&uport->lock);
-       mutex_unlock(&port->mutex);
        if (mctrl & TIOCM_CAR)
                return 1;
        return 0;
@@ -1521,12 +1519,11 @@ static void uart_dtr_rts(struct tty_port *port, int onoff)
 {
        struct uart_state *state = container_of(port, struct uart_state, port);
        struct uart_port *uport = state->uart_port;
-       mutex_lock(&port->mutex);
+
        if (onoff)
                uart_set_mctrl(uport, TIOCM_DTR | TIOCM_RTS);
        else
                uart_clear_mctrl(uport, TIOCM_DTR | TIOCM_RTS);
-       mutex_unlock(&port->mutex);
 }
 
 /*