drivers/usb/phy/phy-tahvo.c | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-)
Smatch reports:
drivers/usb/phy/phy-tahvo.c: tahvo_usb_probe()
warn: missing unwind goto?
After geting irq, if ret < 0, it will return without error handling to
free memory.
Just add error handling to fix this problem.
Fixes: 0d45a1373e66 ("usb: phy: tahvo: add IRQ check")
Signed-off-by: Li Yang <lidaxian@hust.edu.cn>
Reviewed-by: Dongliang Mu <dzm91@hust.edu.cn>
---
The issue is found by static analysis, and the patch remains untest.
---
drivers/usb/phy/phy-tahvo.c | 7 +++++--
1 file changed, 5 insertions(+), 2 deletions(-)
diff --git a/drivers/usb/phy/phy-tahvo.c b/drivers/usb/phy/phy-tahvo.c
index f2d2cc586c5b..184a5f3d7473 100644
--- a/drivers/usb/phy/phy-tahvo.c
+++ b/drivers/usb/phy/phy-tahvo.c
@@ -390,8 +390,11 @@ static int tahvo_usb_probe(struct platform_device *pdev)
dev_set_drvdata(&pdev->dev, tu);
tu->irq = ret = platform_get_irq(pdev, 0);
- if (ret < 0)
- return ret;
+ if (ret < 0) {
+ dev_err(&pdev->dev, "could not get irq: %d\n",
+ ret);
+ goto err_remove_phy;
+ }
ret = request_threaded_irq(tu->irq, NULL, tahvo_usb_vbus_interrupt,
IRQF_ONESHOT,
"tahvo-vbus", tu);
--
2.34.1
Hello!
On 4/18/23 12:07 PM, Li Yang wrote:
> Smatch reports:
> drivers/usb/phy/phy-tahvo.c: tahvo_usb_probe()
> warn: missing unwind goto?
>
> After geting irq, if ret < 0, it will return without error handling to
> free memory.
> Just add error handling to fix this problem.
Oops, I'm sorry for missing that one...
> Fixes: 0d45a1373e66 ("usb: phy: tahvo: add IRQ check")
> Signed-off-by: Li Yang <lidaxian@hust.edu.cn>
> Reviewed-by: Dongliang Mu <dzm91@hust.edu.cn>
> ---
> The issue is found by static analysis, and the patch remains untest.
> ---
> drivers/usb/phy/phy-tahvo.c | 7 +++++--
> 1 file changed, 5 insertions(+), 2 deletions(-)
>
> diff --git a/drivers/usb/phy/phy-tahvo.c b/drivers/usb/phy/phy-tahvo.c
> index f2d2cc586c5b..184a5f3d7473 100644
> --- a/drivers/usb/phy/phy-tahvo.c
> +++ b/drivers/usb/phy/phy-tahvo.c
> @@ -390,8 +390,11 @@ static int tahvo_usb_probe(struct platform_device *pdev)
> dev_set_drvdata(&pdev->dev, tu);
>
> tu->irq = ret = platform_get_irq(pdev, 0);
> - if (ret < 0)
> - return ret;
> + if (ret < 0) {
> + dev_err(&pdev->dev, "could not get irq: %d\n",
> + ret);
Adding the error message needs another patch, strictly speaking...
> + goto err_remove_phy;
> + }
> ret = request_threaded_irq(tu->irq, NULL, tahvo_usb_vbus_interrupt,
> IRQF_ONESHOT,
> "tahvo-vbus", tu);
MBR, Sergey
On 4/18/23 2:17 PM, Sergey Shtylyov wrote:
[...]
>> Smatch reports:
>> drivers/usb/phy/phy-tahvo.c: tahvo_usb_probe()
>> warn: missing unwind goto?
>>
>> After geting irq, if ret < 0, it will return without error handling to
>> free memory.
>> Just add error handling to fix this problem.
>
> Oops, I'm sorry for missing that one...
>
>> Fixes: 0d45a1373e66 ("usb: phy: tahvo: add IRQ check")
>> Signed-off-by: Li Yang <lidaxian@hust.edu.cn>
>> Reviewed-by: Dongliang Mu <dzm91@hust.edu.cn>
>> ---
>> The issue is found by static analysis, and the patch remains untest.
>> ---
>> drivers/usb/phy/phy-tahvo.c | 7 +++++--
>> 1 file changed, 5 insertions(+), 2 deletions(-)
>>
>> diff --git a/drivers/usb/phy/phy-tahvo.c b/drivers/usb/phy/phy-tahvo.c
>> index f2d2cc586c5b..184a5f3d7473 100644
>> --- a/drivers/usb/phy/phy-tahvo.c
>> +++ b/drivers/usb/phy/phy-tahvo.c
>> @@ -390,8 +390,11 @@ static int tahvo_usb_probe(struct platform_device *pdev)
>> dev_set_drvdata(&pdev->dev, tu);
>>
>> tu->irq = ret = platform_get_irq(pdev, 0);
>> - if (ret < 0)
>> - return ret;
>> + if (ret < 0) {
>> + dev_err(&pdev->dev, "could not get irq: %d\n",
>> + ret);
>
> Adding the error message needs another patch, strictly speaking...
And if you look at platform_get_irq(), you'll see that it prints an error msg
itself...
[...]
MBR, Sergey
On Tue, Apr 18, 2023 at 05:07:57PM +0800, Li Yang wrote:
> Smatch reports:
> drivers/usb/phy/phy-tahvo.c: tahvo_usb_probe()
> warn: missing unwind goto?
>
> After geting irq, if ret < 0, it will return without error handling to
> free memory.
> Just add error handling to fix this problem.
>
> Fixes: 0d45a1373e66 ("usb: phy: tahvo: add IRQ check")
> Signed-off-by: Li Yang <lidaxian@hust.edu.cn>
> Reviewed-by: Dongliang Mu <dzm91@hust.edu.cn>
> ---
> The issue is found by static analysis, and the patch remains untest.
> ---
> drivers/usb/phy/phy-tahvo.c | 7 +++++--
> 1 file changed, 5 insertions(+), 2 deletions(-)
>
> diff --git a/drivers/usb/phy/phy-tahvo.c b/drivers/usb/phy/phy-tahvo.c
> index f2d2cc586c5b..184a5f3d7473 100644
> --- a/drivers/usb/phy/phy-tahvo.c
> +++ b/drivers/usb/phy/phy-tahvo.c
> @@ -390,8 +390,11 @@ static int tahvo_usb_probe(struct platform_device *pdev)
> dev_set_drvdata(&pdev->dev, tu);
>
> tu->irq = ret = platform_get_irq(pdev, 0);
> - if (ret < 0)
> - return ret;
> + if (ret < 0) {
> + dev_err(&pdev->dev, "could not get irq: %d\n",
> + ret);
Why print this out? And why the odd line-wrapping?
thanks,
greg k-h
> -----Original Messages-----
> From: "Greg Kroah-Hartman" <gregkh@linuxfoundation.org>
> Sent Time: 2023-04-18 17:19:12 (Tuesday)
> To: "Li Yang" <lidaxian@hust.edu.cn>
> Cc: "Felipe Balbi" <balbi@kernel.org>, "Sergey Shtylyov" <s.shtylyov@omp.ru>, "Dongliang Mu" <dzm91@hust.edu.cn>, linux-usb@vger.kernel.org, linux-kernel@vger.kernel.org
> Subject: Re: [PATCH] usb: phy: phy-tahvo: fix memory leak in tahvo_usb_probe()
>
> On Tue, Apr 18, 2023 at 05:07:57PM +0800, Li Yang wrote:
> > Smatch reports:
> > drivers/usb/phy/phy-tahvo.c: tahvo_usb_probe()
> > warn: missing unwind goto?
> >
> > After geting irq, if ret < 0, it will return without error handling to
> > free memory.
> > Just add error handling to fix this problem.
> >
> > Fixes: 0d45a1373e66 ("usb: phy: tahvo: add IRQ check")
> > Signed-off-by: Li Yang <lidaxian@hust.edu.cn>
> > Reviewed-by: Dongliang Mu <dzm91@hust.edu.cn>
> > ---
> > The issue is found by static analysis, and the patch remains untest.
> > ---
> > drivers/usb/phy/phy-tahvo.c | 7 +++++--
> > 1 file changed, 5 insertions(+), 2 deletions(-)
> >
> > diff --git a/drivers/usb/phy/phy-tahvo.c b/drivers/usb/phy/phy-tahvo.c
> > index f2d2cc586c5b..184a5f3d7473 100644
> > --- a/drivers/usb/phy/phy-tahvo.c
> > +++ b/drivers/usb/phy/phy-tahvo.c
> > @@ -390,8 +390,11 @@ static int tahvo_usb_probe(struct platform_device *pdev)
> > dev_set_drvdata(&pdev->dev, tu);
> >
> > tu->irq = ret = platform_get_irq(pdev, 0);
> > - if (ret < 0)
> > - return ret;
> > + if (ret < 0) {
> > + dev_err(&pdev->dev, "could not get irq: %d\n",
> > + ret);
>
> Why print this out? And why the odd line-wrapping?
>
> thanks,
>
> greg k-h
For the first question, I am just emulating the coding style of the original author who outputs corresponding information after each error. If there is anything unreasonable about doing so, please let me know. As for the second question, it's my mistake and I will correct it immediately.
regrads,
Li Yang
> -----Original Messages-----
> From: "Li Yang" <lidaxian@hust.edu.cn>
> Sent Time: 2023-04-18 17:07:57 (Tuesday)
> To: "Greg Kroah-Hartman" <gregkh@linuxfoundation.org>, "Felipe Balbi" <balbi@kernel.org>, "Sergey Shtylyov" <s.shtylyov@omp.ru>
> Cc: "Li Yang" <lidaxian@hust.edu.cn>, "Dongliang Mu" <dzm91@hust.edu.cn>, linux-usb@vger.kernel.org, linux-kernel@vger.kernel.org
> Subject: [PATCH] usb: phy: phy-tahvo: fix memory leak in tahvo_usb_probe()
>
> Smatch reports:
> drivers/usb/phy/phy-tahvo.c: tahvo_usb_probe()
> warn: missing unwind goto?
>
> After geting irq, if ret < 0, it will return without error handling to
> free memory.
> Just add error handling to fix this problem.
>
> Fixes: 0d45a1373e66 ("usb: phy: tahvo: add IRQ check")
> Signed-off-by: Li Yang <lidaxian@hust.edu.cn>
> Reviewed-by: Dongliang Mu <dzm91@hust.edu.cn>
> ---
> The issue is found by static analysis, and the patch remains untest.
> ---
> drivers/usb/phy/phy-tahvo.c | 7 +++++--
> 1 file changed, 5 insertions(+), 2 deletions(-)
>
> diff --git a/drivers/usb/phy/phy-tahvo.c b/drivers/usb/phy/phy-tahvo.c
> index f2d2cc586c5b..184a5f3d7473 100644
> --- a/drivers/usb/phy/phy-tahvo.c
> +++ b/drivers/usb/phy/phy-tahvo.c
> @@ -390,8 +390,11 @@ static int tahvo_usb_probe(struct platform_device *pdev)
> dev_set_drvdata(&pdev->dev, tu);
>
> tu->irq = ret = platform_get_irq(pdev, 0);
> - if (ret < 0)
> - return ret;
> + if (ret < 0) {
> + dev_err(&pdev->dev, "could not get irq: %d\n",
> + ret);
> + goto err_remove_phy;
> + }
> ret = request_threaded_irq(tu->irq, NULL, tahvo_usb_vbus_interrupt,
> IRQF_ONESHOT,
> "tahvo-vbus", tu);
> --
> 2.34.1
cc hust-os-kernel-patches@googlegroups.com
© 2016 - 2025 Red Hat, Inc.