From: Jens Taprogge <jens.tapro...@taprogge.org> These changes make it easier to add more initialization steps later on.
Signed-off-by: Jens Taprogge <jens.tapro...@taprogge.org> Signed-off-by: Samuel Iglesias Gonsálvez <sigles...@igalia.com> --- drivers/staging/ipack/bridges/tpci200.c | 25 +++++++++++++++---------- 1 file changed, 15 insertions(+), 10 deletions(-) diff --git a/drivers/staging/ipack/bridges/tpci200.c b/drivers/staging/ipack/bridges/tpci200.c index 5831af8..eda02e7 100644 --- a/drivers/staging/ipack/bridges/tpci200.c +++ b/drivers/staging/ipack/bridges/tpci200.c @@ -790,8 +790,8 @@ static int tpci200_pciprobe(struct pci_dev *pdev, tpci200->info = kzalloc(sizeof(struct tpci200_infos), GFP_KERNEL); if (!tpci200->info) { - kfree(tpci200); - return -ENOMEM; + ret = -ENOMEM; + goto out_err_info; } /* Save struct pci_dev pointer */ @@ -801,10 +801,9 @@ static int tpci200_pciprobe(struct pci_dev *pdev, /* register the device and initialize it */ ret = tpci200_install(tpci200); if (ret) { - dev_err(&pdev->dev, "Error during tpci200 install !\n"); - kfree(tpci200->info); - kfree(tpci200); - return -ENODEV; + dev_err(&pdev->dev, "error during tpci200 install\n"); + ret = -ENODEV; + goto out_err_install; } /* Register the carrier in the industry pack bus driver */ @@ -814,10 +813,8 @@ static int tpci200_pciprobe(struct pci_dev *pdev, if (!tpci200->info->ipack_bus) { dev_err(&pdev->dev, "error registering the carrier on ipack driver\n"); - tpci200_uninstall(tpci200); - kfree(tpci200->info); - kfree(tpci200); - return -EFAULT; + ret = -EFAULT; + goto out_err_bus_register; } /* save the bus number given by ipack to logging purpose */ @@ -831,6 +828,14 @@ static int tpci200_pciprobe(struct pci_dev *pdev, for (i = 0; i < TPCI200_NB_SLOT; i++) tpci200->slots[i].dev = ipack_device_register(tpci200->info->ipack_bus, i, i); + return 0; + +out_err_bus_register: + tpci200_uninstall(tpci200); +out_err_install: + kfree(tpci200->info); +out_err_info: + kfree(tpci200); return ret; } -- 1.7.10.4 -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/