netdev.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH net] net: ethernet: wiznet: w5300: free irq when alloc link_name failed in w5300_hw_probe()
@ 2022-11-19  7:10 Gaosheng Cui
  2022-11-22 12:28 ` Leon Romanovsky
  0 siblings, 1 reply; 3+ messages in thread
From: Gaosheng Cui @ 2022-11-19  7:10 UTC (permalink / raw)
  To: davem, edumazet, kuba, pabeni, thomas.lendacky, shayagr,
	cuigaosheng1, wsa+renesas, msink
  Cc: netdev

When alloc link_name failed in w5300_hw_probe(), irq has not been
freed. Fix it.

Fixes: 9899b81e7ca5 ("Ethernet driver for the WIZnet W5300 chip")
Signed-off-by: Gaosheng Cui <cuigaosheng1@huawei.com>
---
 drivers/net/ethernet/wiznet/w5300.c | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/drivers/net/ethernet/wiznet/w5300.c b/drivers/net/ethernet/wiznet/w5300.c
index b0958fe8111e..5571d4c365e9 100644
--- a/drivers/net/ethernet/wiznet/w5300.c
+++ b/drivers/net/ethernet/wiznet/w5300.c
@@ -572,8 +572,10 @@ static int w5300_hw_probe(struct platform_device *pdev)
 	priv->link_gpio = data ? data->link_gpio : -EINVAL;
 	if (gpio_is_valid(priv->link_gpio)) {
 		char *link_name = devm_kzalloc(&pdev->dev, 16, GFP_KERNEL);
-		if (!link_name)
+		if (!link_name) {
+			free_irq(irq, ndev);
 			return -ENOMEM;
+		}
 		snprintf(link_name, 16, "%s-link", name);
 		priv->link_irq = gpio_to_irq(priv->link_gpio);
 		if (request_any_context_irq(priv->link_irq, w5300_detect_link,
-- 
2.25.1


^ permalink raw reply related	[flat|nested] 3+ messages in thread

* Re: [PATCH net] net: ethernet: wiznet: w5300: free irq when alloc link_name failed in w5300_hw_probe()
  2022-11-19  7:10 [PATCH net] net: ethernet: wiznet: w5300: free irq when alloc link_name failed in w5300_hw_probe() Gaosheng Cui
@ 2022-11-22 12:28 ` Leon Romanovsky
  2022-11-22 13:05   ` cuigaosheng
  0 siblings, 1 reply; 3+ messages in thread
From: Leon Romanovsky @ 2022-11-22 12:28 UTC (permalink / raw)
  To: Gaosheng Cui
  Cc: davem, edumazet, kuba, pabeni, thomas.lendacky, shayagr,
	wsa+renesas, msink, netdev

On Sat, Nov 19, 2022 at 03:10:07PM +0800, Gaosheng Cui wrote:
> When alloc link_name failed in w5300_hw_probe(), irq has not been
> freed. Fix it.
> 
> Fixes: 9899b81e7ca5 ("Ethernet driver for the WIZnet W5300 chip")
> Signed-off-by: Gaosheng Cui <cuigaosheng1@huawei.com>
> ---
>  drivers/net/ethernet/wiznet/w5300.c | 4 +++-
>  1 file changed, 3 insertions(+), 1 deletion(-)
> 
> diff --git a/drivers/net/ethernet/wiznet/w5300.c b/drivers/net/ethernet/wiznet/w5300.c
> index b0958fe8111e..5571d4c365e9 100644
> --- a/drivers/net/ethernet/wiznet/w5300.c
> +++ b/drivers/net/ethernet/wiznet/w5300.c
> @@ -572,8 +572,10 @@ static int w5300_hw_probe(struct platform_device *pdev)
>  	priv->link_gpio = data ? data->link_gpio : -EINVAL;
>  	if (gpio_is_valid(priv->link_gpio)) {
>  		char *link_name = devm_kzalloc(&pdev->dev, 16, GFP_KERNEL);
> -		if (!link_name)
> +		if (!link_name) {
> +			free_irq(irq, ndev);
>  			return -ENOMEM;
> +		}
>  		snprintf(link_name, 16, "%s-link", name);
>  		priv->link_irq = gpio_to_irq(priv->link_gpio);
>  		if (request_any_context_irq(priv->link_irq, w5300_detect_link,

  579                 if (request_any_context_irq(priv->link_irq, w5300_detect_link,
  580                                 IRQF_TRIGGER_RISING | IRQF_TRIGGER_FALLING,
  581                                 link_name, priv->ndev) < 0)
  582                         priv->link_gpio = -EINVAL;

You should call to same free_irq(irq, ndev) in this "if" too.

Thanks

> -- 
> 2.25.1
> 

^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: [PATCH net] net: ethernet: wiznet: w5300: free irq when alloc link_name failed in w5300_hw_probe()
  2022-11-22 12:28 ` Leon Romanovsky
@ 2022-11-22 13:05   ` cuigaosheng
  0 siblings, 0 replies; 3+ messages in thread
From: cuigaosheng @ 2022-11-22 13:05 UTC (permalink / raw)
  To: Leon Romanovsky
  Cc: davem, edumazet, kuba, pabeni, thomas.lendacky, shayagr,
	wsa+renesas, msink, netdev

>    579                 if (request_any_context_irq(priv->link_irq, w5300_detect_link,
>    580                                 IRQF_TRIGGER_RISING | IRQF_TRIGGER_FALLING,
>    581                                 link_name, priv->ndev) < 0)
>    582                         priv->link_gpio = -EINVAL;
>
> You should call to same free_irq(irq, ndev) in this "if" too.
>
> Thanks

Thanks for taking time to review this patch, if request_any_context_irq(...) failed,
w5300_hw_probe will return 0(success), should I call the free_irq(...) in this case?

Thanks.

On 2022/11/22 20:28, Leon Romanovsky wrote:
> On Sat, Nov 19, 2022 at 03:10:07PM +0800, Gaosheng Cui wrote:
>> When alloc link_name failed in w5300_hw_probe(), irq has not been
>> freed. Fix it.
>>
>> Fixes: 9899b81e7ca5 ("Ethernet driver for the WIZnet W5300 chip")
>> Signed-off-by: Gaosheng Cui <cuigaosheng1@huawei.com>
>> ---
>>   drivers/net/ethernet/wiznet/w5300.c | 4 +++-
>>   1 file changed, 3 insertions(+), 1 deletion(-)
>>
>> diff --git a/drivers/net/ethernet/wiznet/w5300.c b/drivers/net/ethernet/wiznet/w5300.c
>> index b0958fe8111e..5571d4c365e9 100644
>> --- a/drivers/net/ethernet/wiznet/w5300.c
>> +++ b/drivers/net/ethernet/wiznet/w5300.c
>> @@ -572,8 +572,10 @@ static int w5300_hw_probe(struct platform_device *pdev)
>>   	priv->link_gpio = data ? data->link_gpio : -EINVAL;
>>   	if (gpio_is_valid(priv->link_gpio)) {
>>   		char *link_name = devm_kzalloc(&pdev->dev, 16, GFP_KERNEL);
>> -		if (!link_name)
>> +		if (!link_name) {
>> +			free_irq(irq, ndev);
>>   			return -ENOMEM;
>> +		}
>>   		snprintf(link_name, 16, "%s-link", name);
>>   		priv->link_irq = gpio_to_irq(priv->link_gpio);
>>   		if (request_any_context_irq(priv->link_irq, w5300_detect_link,
>    579                 if (request_any_context_irq(priv->link_irq, w5300_detect_link,
>    580                                 IRQF_TRIGGER_RISING | IRQF_TRIGGER_FALLING,
>    581                                 link_name, priv->ndev) < 0)
>    582                         priv->link_gpio = -EINVAL;
>
> You should call to same free_irq(irq, ndev) in this "if" too.
>
> Thanks
>
>> -- 
>> 2.25.1
>>
> .

^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2022-11-22 13:05 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2022-11-19  7:10 [PATCH net] net: ethernet: wiznet: w5300: free irq when alloc link_name failed in w5300_hw_probe() Gaosheng Cui
2022-11-22 12:28 ` Leon Romanovsky
2022-11-22 13:05   ` cuigaosheng

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).