diff --git a/drivers/tty/serial/serial_core.c b/drivers/tty/serial/serial_core.c index 1e7430c60ee6497a5a8dcd24fb102098fdc143bb..5cf0697564972883beae329f43ab6d59b8035947 100644 --- a/drivers/tty/serial/serial_core.c +++ b/drivers/tty/serial/serial_core.c @@ -1622,15 +1622,12 @@ static int uart_open(struct tty_struct *tty, struct file *filp) /* * If we succeeded, wait until the port is ready. */ +err_unlock: mutex_unlock(&port->mutex); if (retval == 0) retval = tty_port_block_til_ready(port, tty, filp); - end: return retval; -err_unlock: - mutex_unlock(&port->mutex); - goto end; } static const char *uart_type(struct uart_port *port)