tty: sdio_uart: Fix the locking on "func" for new code
authorAlan Cox <alan@linux.intel.com>
Mon, 30 Nov 2009 13:16:30 +0000 (13:16 +0000)
committerGreg Kroah-Hartman <gregkh@suse.de>
Fri, 11 Dec 2009 23:18:06 +0000 (15:18 -0800)
The new dtr_rts function didn't take the port->func lock as it should
so add use of the lock there.

Signed-off-by: Alan Cox <alan@linux.intel.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
drivers/mmc/card/sdio_uart.c

index 2a13db54ffc41b72cbae22a222e9616538de7d7f..f53755533e7e2e05b4343850ed544b10c0429df6 100644 (file)
@@ -603,10 +603,14 @@ static void uart_dtr_rts(struct tty_port *tport, int onoff)
 {
        struct sdio_uart_port *port =
                        container_of(tport, struct sdio_uart_port, port);
+       int ret = sdio_uart_claim_func(port);
+       if (ret)
+               return;
        if (onoff == 0)
                sdio_uart_clear_mctrl(port, TIOCM_DTR | TIOCM_RTS);
        else
                sdio_uart_set_mctrl(port, TIOCM_DTR | TIOCM_RTS);
+       sdio_uart_release_func(port);
 }
 
 /**