Messages in this thread | | | From | "M Tamseel Shams" <> | Subject | RE: [PATCH v2] serial: samsung: Checks the return value of function | Date | Mon, 5 Jul 2021 16:34:05 +0530 |
| |
> -----Original Message----- > From: Krzysztof Kozlowski <krzysztof.kozlowski@canonical.com> > Sent: Thursday, July 1, 2021 12:06 PM > To: Tamseel Shams <m.shams@samsung.com>; gregkh@linuxfoundation.org; > jirislaby@kernel.org > Cc: linux-arm-kernel@lists.infradead.org; linux-samsung-soc@vger.kernel.org; > linux-serial@vger.kernel.org; linux-kernel@vger.kernel.org; > alim.akhtar@samsung.com > Subject: Re: [PATCH v2] serial: samsung: Checks the return value of function > > On 30/06/2021 15:33, Tamseel Shams wrote: > > "uart_add_one_port" function call may fail and return some error code, > > so adding a check for return value. > > If it is returning some error code, then displaying the result, > > unregistering the driver and then returning from probe function with > > error code. > > > > Signed-off-by: Tamseel Shams <m.shams@samsung.com> > > --- > > Changes since v1: > > 1. Added support to unregister driver on failure of "uart_add_onr_port" > > function call. > > 2. Commit message updated. > > > > drivers/tty/serial/samsung_tty.c | 11 ++++++++++- > > 1 file changed, 10 insertions(+), 1 deletion(-) > > > > diff --git a/drivers/tty/serial/samsung_tty.c > > b/drivers/tty/serial/samsung_tty.c > > index 9fbc61151c2e..188e2d2da201 100644 > > --- a/drivers/tty/serial/samsung_tty.c > > +++ b/drivers/tty/serial/samsung_tty.c > > @@ -2253,7 +2253,11 @@ static int s3c24xx_serial_probe(struct > platform_device *pdev) > > } > > > > dev_dbg(&pdev->dev, "%s: adding port\n", __func__); > > - uart_add_one_port(&s3c24xx_uart_drv, &ourport->port); > > + ret = uart_add_one_port(&s3c24xx_uart_drv, &ourport->port); > > + if (ret < 0) { > > + dev_err(&pdev->dev, "Failed to add uart port, err %d\n", ret); > > + goto add_port_error; > > + } > > platform_set_drvdata(pdev, &ourport->port); > > > > /* > > @@ -2272,6 +2276,11 @@ static int s3c24xx_serial_probe(struct > platform_device *pdev) > > probe_index++; > > > > return 0; > > + > > +add_port_error: > > You did not unwind fully s3c24xx_serial_init_port() - clocks. > Hi Krzysztof,
Yeah, missed the unwinding of clocks. Will fix this in next version.
Thanks & Regards, Tamseel Shams
| |