misc: microchip: pci1xxxx: fix error handling in gp_aux_bus_probe()
authorWei Yongjun <weiyongjun1@huawei.com>
Wed, 7 Sep 2022 14:58:04 +0000 (14:58 +0000)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Fri, 9 Sep 2022 08:03:13 +0000 (10:03 +0200)
In some error handling path, resoures alloced may not released.
This patch fix them.

Fixes: 393fc2f5948f ("misc: microchip: pci1xxxx: load auxiliary bus driver for the PIO function in the multi-function endpoint of pci1xxxx device.")
Reviewed-by: Kumaravel Thiagarajan <kumaravel.thiagarajan@microchip.com>
Signed-off-by: Wei Yongjun <weiyongjun1@huawei.com>
Link: https://lore.kernel.org/r/20220907145808.1789249-1-weiyongjun@huaweicloud.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/misc/mchp_pci1xxxx/mchp_pci1xxxx_gp.c

index bfc03028b34d6a611505c9fa0f0740f87acaae6c..edff3ee73f6f2f8b1b4cefa311a2e07332b89aca 100644 (file)
@@ -87,12 +87,13 @@ static int gp_aux_bus_probe(struct pci_dev *pdev, const struct pci_device_id *id
        retval = pci_alloc_irq_vectors(pdev, 1, 1, PCI_IRQ_ALL_TYPES);
 
        if (retval < 0)
-               return retval;
+               goto err_aux_dev_init_1;
 
-       pdev->irq = pci_irq_vector(pdev, 0);
-       if (pdev->irq < 0)
-               return retval;
+       retval = pci_irq_vector(pdev, 0);
+       if (retval < 0)
+               goto err_aux_dev_init_1;
 
+       pdev->irq = retval;
        aux_bus->aux_device_wrapper[1]->gp_aux_data.irq_num = pdev->irq;
 
        retval = auxiliary_device_init(&aux_bus->aux_device_wrapper[1]->aux_dev);