[PATCH] xen: add missing free_irq() in error path

ruanjinjie posted 1 patch 1 year, 5 months ago
Failed in applying to current master (apply log)
There is a newer version of this series
drivers/xen/platform-pci.c | 7 +++++--
1 file changed, 5 insertions(+), 2 deletions(-)
[PATCH] xen: add missing free_irq() in error path
Posted by ruanjinjie 1 year, 5 months ago
free_irq() is missing in case of error, fix that.

Signed-off-by: ruanjinjie <ruanjinjie@huawei.com>
---
 drivers/xen/platform-pci.c | 7 +++++--
 1 file changed, 5 insertions(+), 2 deletions(-)

diff --git a/drivers/xen/platform-pci.c b/drivers/xen/platform-pci.c
index 18f0ed8b1f93..6ebd819338ec 100644
--- a/drivers/xen/platform-pci.c
+++ b/drivers/xen/platform-pci.c
@@ -144,7 +144,7 @@ static int platform_pci_probe(struct pci_dev *pdev,
 		if (ret) {
 			dev_warn(&pdev->dev, "Unable to set the evtchn callback "
 					 "err=%d\n", ret);
-			goto out;
+			goto irq_out;
 		}
 	}
 
@@ -152,13 +152,16 @@ static int platform_pci_probe(struct pci_dev *pdev,
 	grant_frames = alloc_xen_mmio(PAGE_SIZE * max_nr_gframes);
 	ret = gnttab_setup_auto_xlat_frames(grant_frames);
 	if (ret)
-		goto out;
+		goto irq_out;
 	ret = gnttab_init();
 	if (ret)
 		goto grant_out;
 	return 0;
 grant_out:
 	gnttab_free_auto_xlat_frames();
+irq_out:
+	if (!xen_have_vector_callback)
+		free_irq(pdev->irq, pdev);
 out:
 	pci_release_region(pdev, 0);
 mem_out:
-- 
2.25.1
Re: [PATCH] xen: add missing free_irq() in error path
Posted by Oleksandr Tyshchenko 1 year, 5 months ago
On 14.11.22 09:07, ruanjinjie wrote:

Hello


> free_irq() is missing in case of error, fix that.
>
> Signed-off-by: ruanjinjie <ruanjinjie@huawei.com>


Nit: neither subject nor description mentions which subsystem current 
patch targets.

I would add "xen-platform:" or "xen/platform-pci:" at least.


Reviewed-by: Oleksandr Tyshchenko <oleksandr_tyshchenko@epam.com>

Thanks.

> ---
>   drivers/xen/platform-pci.c | 7 +++++--
>   1 file changed, 5 insertions(+), 2 deletions(-)
>
> diff --git a/drivers/xen/platform-pci.c b/drivers/xen/platform-pci.c
> index 18f0ed8b1f93..6ebd819338ec 100644
> --- a/drivers/xen/platform-pci.c
> +++ b/drivers/xen/platform-pci.c
> @@ -144,7 +144,7 @@ static int platform_pci_probe(struct pci_dev *pdev,
>   		if (ret) {
>   			dev_warn(&pdev->dev, "Unable to set the evtchn callback "
>   					 "err=%d\n", ret);
> -			goto out;
> +			goto irq_out;
>   		}
>   	}
>   
> @@ -152,13 +152,16 @@ static int platform_pci_probe(struct pci_dev *pdev,
>   	grant_frames = alloc_xen_mmio(PAGE_SIZE * max_nr_gframes);
>   	ret = gnttab_setup_auto_xlat_frames(grant_frames);
>   	if (ret)
> -		goto out;
> +		goto irq_out;
>   	ret = gnttab_init();
>   	if (ret)
>   		goto grant_out;
>   	return 0;
>   grant_out:
>   	gnttab_free_auto_xlat_frames();
> +irq_out:
> +	if (!xen_have_vector_callback)
> +		free_irq(pdev->irq, pdev);
>   out:
>   	pci_release_region(pdev, 0);
>   mem_out:

-- 
Regards,

Oleksandr Tyshchenko
Re: [PATCH] xen: add missing free_irq() in error path
Posted by Ruan Jinjie 1 year, 5 months ago

On 2022/11/14 18:45, Oleksandr Tyshchenko wrote:
> 
> On 14.11.22 09:07, ruanjinjie wrote:
> 
> Hello
> 
> 
>> free_irq() is missing in case of error, fix that.
>>
>> Signed-off-by: ruanjinjie <ruanjinjie@huawei.com>
> 
> 
> Nit: neither subject nor description mentions which subsystem current 
> patch targets.
> 
> I would add "xen-platform:" or "xen/platform-pci:" at least.
> 
Thank you very much!
> 
> Reviewed-by: Oleksandr Tyshchenko <oleksandr_tyshchenko@epam.com>
> 
> Thanks.
> 
>> ---
>>   drivers/xen/platform-pci.c | 7 +++++--
>>   1 file changed, 5 insertions(+), 2 deletions(-)
>>
>> diff --git a/drivers/xen/platform-pci.c b/drivers/xen/platform-pci.c
>> index 18f0ed8b1f93..6ebd819338ec 100644
>> --- a/drivers/xen/platform-pci.c
>> +++ b/drivers/xen/platform-pci.c
>> @@ -144,7 +144,7 @@ static int platform_pci_probe(struct pci_dev *pdev,
>>   		if (ret) {
>>   			dev_warn(&pdev->dev, "Unable to set the evtchn callback "
>>   					 "err=%d\n", ret);
>> -			goto out;
>> +			goto irq_out;
>>   		}
>>   	}
>>   
>> @@ -152,13 +152,16 @@ static int platform_pci_probe(struct pci_dev *pdev,
>>   	grant_frames = alloc_xen_mmio(PAGE_SIZE * max_nr_gframes);
>>   	ret = gnttab_setup_auto_xlat_frames(grant_frames);
>>   	if (ret)
>> -		goto out;
>> +		goto irq_out;
>>   	ret = gnttab_init();
>>   	if (ret)
>>   		goto grant_out;
>>   	return 0;
>>   grant_out:
>>   	gnttab_free_auto_xlat_frames();
>> +irq_out:
>> +	if (!xen_have_vector_callback)
>> +		free_irq(pdev->irq, pdev);
>>   out:
>>   	pci_release_region(pdev, 0);
>>   mem_out:
>