Re: [PATCH -next] serial: 8250: 8250_core: Fix missing unlock on error in serial8250_register_8250_port()

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 




Am 03.07.2019 07:59, schrieb Wei Yongjun:
> Add the missing unlock before return from function serial8250_register_8250_port()
> in the error handling case.
> 
> Signed-off-by: Wei Yongjun <weiyongjun1@xxxxxxxxxx>
> ---
>  drivers/tty/serial/8250/8250_core.c | 7 +++++--
>  1 file changed, 5 insertions(+), 2 deletions(-)
> 
> diff --git a/drivers/tty/serial/8250/8250_core.c b/drivers/tty/serial/8250/8250_core.c
> index a4470771005f..df3bcc0b2d74 100644
> --- a/drivers/tty/serial/8250/8250_core.c
> +++ b/drivers/tty/serial/8250/8250_core.c
> @@ -1026,8 +1026,10 @@ int serial8250_register_8250_port(struct uart_8250_port *up)
>  		if (!has_acpi_companion(uart->port.dev)) {
>  			gpios = mctrl_gpio_init(&uart->port, 0);
>  			if (IS_ERR(gpios)) {
> -				if (PTR_ERR(gpios) != -ENOSYS)
> -					return PTR_ERR(gpios);
> +				if (PTR_ERR(gpios) != -ENOSYS) {
> +					ret = PTR_ERR(gpios);
> +					goto out_unlock;
> +				}
>  			} else {
>  				uart->gpios = gpios;
>  			}
> @@ -1099,6 +1101,7 @@ int serial8250_register_8250_port(struct uart_8250_port *up)
>  		}
>  	}
>  
> +out_unlock:
>  	mutex_unlock(&serial_mutex);
>  
>  	return ret;
> 


i am sorry but i do not understand these ENOSYS path.
So far i can see uart->gpios will be uninitialized, is that really intended ?

re,
 wh



[Index of Archives]     [Kernel Development]     [Kernel Announce]     [Kernel Newbies]     [Linux Networking Development]     [Share Photos]     [IDE]     [Security]     [Git]     [Netfilter]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Device Mapper]

  Powered by Linux