Messages in this thread | | | Subject | Re: [PATCH 2/2] serial: sh-sci: fix missing uart_unregister_driver() in sci_probe_single() | From | Yang Yingliang <> | Date | Fri, 1 Jul 2022 10:34:49 +0800 |
| |
Hi,
On 2022/6/30 23:13, Greg KH wrote: > On Thu, Jun 30, 2022 at 10:09:19PM +0800, Yang Yingliang wrote: >> Add missing uart_unregister_driver() in error case in sci_probe_single(). >> >> Fixes: 352b92664549 ("serial: sh-sci: Move uart_register_driver call to device probe") >> Reported-by: Hulk Robot <hulkci@huawei.com> >> Signed-off-by: Yang Yingliang <yangyingliang@huawei.com> >> --- >> drivers/tty/serial/sh-sci.c | 6 +++++- >> 1 file changed, 5 insertions(+), 1 deletion(-) >> >> diff --git a/drivers/tty/serial/sh-sci.c b/drivers/tty/serial/sh-sci.c >> index ca5a58f01aff..08a249eaaa8c 100644 >> --- a/drivers/tty/serial/sh-sci.c >> +++ b/drivers/tty/serial/sh-sci.c >> @@ -3280,7 +3280,7 @@ static int sci_probe_single(struct platform_device *dev, >> >> ret = sci_init_single(dev, sciport, index, p, false); >> if (ret) >> - return ret; >> + goto err_unregister; >> >> sciport->gpios = mctrl_gpio_init(&sciport->port, 0); >> if (IS_ERR(sciport->gpios)) { >> @@ -3306,6 +3306,10 @@ static int sci_probe_single(struct platform_device *dev, >> >> err_cleanup_single: >> sci_cleanup_single(sciport); >> +err_unregister: >> + mutex_lock(&sci_uart_registration_lock); >> + uart_unregister_driver(&sci_uart_driver); >> + mutex_unlock(&sci_uart_registration_lock); > Did you test this? > > I think you just broke all other devices attached to this driver. > > Please always test your code before submitting it, especially for stuff > like this. I made a mistake here, the register is for the driver not for single port, this breaks other ports, I will be more careful about this case next time.
Thanks, Yang > > thanks, > > greg k-h > .
| |