Re: [PATCH 1/5] TTY: serial, use ASYNCB_CLOSING in uart_close
From: Arnd Bergmann <arnd@arndb.de>
Date: 2011-08-25 15:15:40
Also in:
lkml
From: Arnd Bergmann <arnd@arndb.de>
Date: 2011-08-25 15:15:40
Also in:
lkml
On Thursday 25 August 2011, Jiri Slaby wrote:
We need to move port->mutex locking after wait_until_sent in uart_close (for rationale see next patches). But if we did it now, we would introduce a race between close and open. This is exactly why port->mutex is locked at the top of uart_close. To avoid the race, we add ASYNCB_CLOSING to uart_close. Like every other sane TTY driver. Thanks to tty_port_block_til_ready used in uart_open we will have this for free. Then we can move the port->mutex lock. Also note that this will make the conversion to tty_port helpers easier. They are currently handling ASYNC_CLOSING flag correctly. Signed-off-by: Jiri Slaby <redacted>
The series looks good to me, Acked-by: Arnd Bergmann <arnd@arndb.de> The only thing left to note is probably that there are a bunch of drivers that implement their own *_wait_until_sent function and call that from their *_close function instead of calling tty_wait_until_sent. These drivers continue to suffer from the same stalls that you are fixing the other ones. Arnd