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 <jslaby@xxxxxxx> The series looks good to me, Acked-by: Arnd Bergmann <arnd@xxxxxxxx> 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 -- To unsubscribe from this list: send the line "unsubscribe linux-serial" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html