Message ID | 20221114070702.1887144-1-ruanjinjie@huawei.com (mailing list archive) |
---|---|
State | Accepted |
Commit | c53717e1e3f0d0f9129b2e0dbc6dcc5e0a8132e9 |
Headers | show |
Series | xen: add missing free_irq() in error path | expand |
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:
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: >
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:
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(-)