ati_remote = kzalloc(sizeof (struct ati_remote), GFP_KERNEL);
        rc_dev = rc_allocate_device();
        if (!ati_remote || !rc_dev)
-               goto fail1;
+               goto exit_free_dev_rdev;
 
        /* Allocate URB buffers, URBs */
        if (ati_remote_alloc_buffers(udev, ati_remote))
-               goto fail2;
+               goto exit_free_buffers;
 
        ati_remote->endpoint_in = endpoint_in;
        ati_remote->endpoint_out = endpoint_out;
        /* Device Hardware Initialization - fills in ati_remote->idev from udev. */
        err = ati_remote_initialize(ati_remote);
        if (err)
-               goto fail3;
+               goto exit_kill_urbs;
 
        /* Set up and register rc device */
        err = rc_register_device(ati_remote->rdev);
        if (err)
-               goto fail3;
+               goto exit_kill_urbs;
 
        /* use our delay for rc_dev */
        ati_remote->rdev->input_dev->rep[REP_DELAY] = repeat_delay;
                input_dev = input_allocate_device();
                if (!input_dev) {
                        err = -ENOMEM;
-                       goto fail4;
+                       goto exit_unregister_device;
                }
 
                ati_remote->idev = input_dev;
                err = input_register_device(input_dev);
 
                if (err)
-                       goto fail5;
+                       goto exit_free_input_device;
        }
 
        usb_set_intfdata(interface, ati_remote);
        return 0;
 
- fail5:        input_free_device(input_dev);
- fail4:        rc_unregister_device(rc_dev);
+ exit_free_input_device:
+       input_free_device(input_dev);
+ exit_unregister_device:
+       rc_unregister_device(rc_dev);
        rc_dev = NULL;
- fail3:        usb_kill_urb(ati_remote->irq_urb);
+ exit_kill_urbs:
+       usb_kill_urb(ati_remote->irq_urb);
        usb_kill_urb(ati_remote->out_urb);
- fail2:        ati_remote_free_buffers(ati_remote);
- fail1:        rc_free_device(rc_dev);
+ exit_free_buffers:
+       ati_remote_free_buffers(ati_remote);
+ exit_free_dev_rdev:
+        rc_free_device(rc_dev);
        kfree(ati_remote);
        return err;
 }
 
        dev = kzalloc(sizeof(struct ene_device), GFP_KERNEL);
        rdev = rc_allocate_device();
        if (!dev || !rdev)
-               goto failure;
+               goto exit_free_dev_rdev;
 
        /* validate resources */
        error = -ENODEV;
 
        if (!pnp_port_valid(pnp_dev, 0) ||
            pnp_port_len(pnp_dev, 0) < ENE_IO_SIZE)
-               goto failure;
+               goto exit_free_dev_rdev;
 
        if (!pnp_irq_valid(pnp_dev, 0))
-               goto failure;
+               goto exit_free_dev_rdev;
 
        spin_lock_init(&dev->hw_lock);
 
        /* detect hardware version and features */
        error = ene_hw_detect(dev);
        if (error)
-               goto failure;
+               goto exit_free_dev_rdev;
 
        if (!dev->hw_learning_and_tx_capable && txsim) {
                dev->hw_learning_and_tx_capable = true;
        /* claim the resources */
        error = -EBUSY;
        if (!request_region(dev->hw_io, ENE_IO_SIZE, ENE_DRIVER_NAME)) {
-               goto failure;
+               goto exit_free_dev_rdev;
        }
 
        dev->irq = pnp_irq(pnp_dev, 0);
        if (request_irq(dev->irq, ene_isr,
                        IRQF_SHARED, ENE_DRIVER_NAME, (void *)dev)) {
-               goto failure2;
+               goto exit_release_hw_io;
        }
 
        error = rc_register_device(rdev);
        if (error < 0)
-               goto failure3;
+               goto exit_free_irq;
 
        pr_notice("driver has been successfully loaded\n");
        return 0;
 
-failure3:
+exit_free_irq:
        free_irq(dev->irq, dev);
-failure2:
+exit_release_hw_io:
        release_region(dev->hw_io, ENE_IO_SIZE);
-failure:
+exit_free_dev_rdev:
        rc_free_device(rdev);
        kfree(dev);
        return error;
 
        /* input device for IR remote (and tx) */
        rdev = rc_allocate_device();
        if (!rdev)
-               goto failure;
+               goto exit_free_dev_rdev;
 
        ret = -ENODEV;
        /* validate pnp resources */
        if (!pnp_port_valid(pdev, 0)) {
                dev_err(&pdev->dev, "IR PNP Port not valid!\n");
-               goto failure;
+               goto exit_free_dev_rdev;
        }
 
        if (!pnp_irq_valid(pdev, 0)) {
                dev_err(&pdev->dev, "IR PNP IRQ not valid!\n");
-               goto failure;
+               goto exit_free_dev_rdev;
        }
 
        fintek->cir_addr = pnp_port_start(pdev, 0);
 
        ret = fintek_hw_detect(fintek);
        if (ret)
-               goto failure;
+               goto exit_free_dev_rdev;
 
        /* Initialize CIR & CIR Wake Logical Devices */
        fintek_config_mode_enable(fintek);
        /* now claim resources */
        if (!request_region(fintek->cir_addr,
                            fintek->cir_port_len, FINTEK_DRIVER_NAME))
-               goto failure;
+               goto exit_free_dev_rdev;
 
        if (request_irq(fintek->cir_irq, fintek_cir_isr, IRQF_SHARED,
                        FINTEK_DRIVER_NAME, (void *)fintek))
-               goto failure2;
+               goto exit_free_cir_addr;
 
        ret = rc_register_device(rdev);
        if (ret)
-               goto failure3;
+               goto exit_free_irq;
 
        device_init_wakeup(&pdev->dev, true);
        fintek->rdev = rdev;
 
        return 0;
 
-failure3:
+exit_free_irq:
        free_irq(fintek->cir_irq, fintek);
-failure2:
+exit_free_cir_addr:
        release_region(fintek->cir_addr, fintek->cir_port_len);
-failure:
+exit_free_dev_rdev:
        rc_free_device(rdev);
        kfree(fintek);
 
 
        /* input device for IR remote (and tx) */
        rdev = rc_allocate_device();
        if (!rdev)
-               goto failure;
+               goto exit_free_dev_rdev;
        itdev->rdev = rdev;
 
        ret = -ENODEV;
        if (!pnp_port_valid(pdev, io_rsrc_no) ||
            pnp_port_len(pdev, io_rsrc_no) != dev_desc->io_region_size) {
                dev_err(&pdev->dev, "IR PNP Port not valid!\n");
-               goto failure;
+               goto exit_free_dev_rdev;
        }
 
        if (!pnp_irq_valid(pdev, 0)) {
                dev_err(&pdev->dev, "PNP IRQ not valid!\n");
-               goto failure;
+               goto exit_free_dev_rdev;
        }
 
        /* store resource values */
        /* now claim resources */
        if (!request_region(itdev->cir_addr,
                                dev_desc->io_region_size, ITE_DRIVER_NAME))
-               goto failure;
+               goto exit_free_dev_rdev;
 
        if (request_irq(itdev->cir_irq, ite_cir_isr, IRQF_SHARED,
                        ITE_DRIVER_NAME, (void *)itdev))
-               goto failure2;
+               goto exit_release_cir_addr;
 
        ret = rc_register_device(rdev);
        if (ret)
-               goto failure3;
+               goto exit_free_irq;
 
        ite_pr(KERN_NOTICE, "driver has been successfully loaded\n");
 
        return 0;
 
-failure3:
+exit_free_irq:
        free_irq(itdev->cir_irq, itdev);
-failure2:
+exit_release_cir_addr:
        release_region(itdev->cir_addr, itdev->params.io_region_size);
-failure:
+exit_free_dev_rdev:
        rc_free_device(rdev);
        kfree(itdev);
 
 
        /* input device for IR remote (and tx) */
        rdev = rc_allocate_device();
        if (!rdev)
-               goto failure;
+               goto exit_free_dev_rdev;
 
        ret = -ENODEV;
        /* validate pnp resources */
        if (!pnp_port_valid(pdev, 0) ||
            pnp_port_len(pdev, 0) < CIR_IOREG_LENGTH) {
                dev_err(&pdev->dev, "IR PNP Port not valid!\n");
-               goto failure;
+               goto exit_free_dev_rdev;
        }
 
        if (!pnp_irq_valid(pdev, 0)) {
                dev_err(&pdev->dev, "PNP IRQ not valid!\n");
-               goto failure;
+               goto exit_free_dev_rdev;
        }
 
        if (!pnp_port_valid(pdev, 1) ||
            pnp_port_len(pdev, 1) < CIR_IOREG_LENGTH) {
                dev_err(&pdev->dev, "Wake PNP Port not valid!\n");
-               goto failure;
+               goto exit_free_dev_rdev;
        }
 
        nvt->cir_addr = pnp_port_start(pdev, 0);
 
        ret = nvt_hw_detect(nvt);
        if (ret)
-               goto failure;
+               goto exit_free_dev_rdev;
 
        /* Initialize CIR & CIR Wake Logical Devices */
        nvt_efm_enable(nvt);
        /* now claim resources */
        if (!request_region(nvt->cir_addr,
                            CIR_IOREG_LENGTH, NVT_DRIVER_NAME))
-               goto failure;
+               goto exit_free_dev_rdev;
 
        if (request_irq(nvt->cir_irq, nvt_cir_isr, IRQF_SHARED,
                        NVT_DRIVER_NAME, (void *)nvt))
-               goto failure2;
+               goto exit_release_cir_addr;
 
        if (!request_region(nvt->cir_wake_addr,
                            CIR_IOREG_LENGTH, NVT_DRIVER_NAME))
-               goto failure3;
+               goto exit_free_irq;
 
        if (request_irq(nvt->cir_wake_irq, nvt_cir_wake_isr, IRQF_SHARED,
                        NVT_DRIVER_NAME, (void *)nvt))
-               goto failure4;
+               goto exit_release_cir_wake_addr;
 
        ret = rc_register_device(rdev);
        if (ret)
-               goto failure5;
+               goto exit_free_wake_irq;
 
        device_init_wakeup(&pdev->dev, true);
        nvt->rdev = rdev;
 
        return 0;
 
-failure5:
+exit_free_wake_irq:
        free_irq(nvt->cir_wake_irq, nvt);
-failure4:
+exit_release_cir_wake_addr:
        release_region(nvt->cir_wake_addr, CIR_IOREG_LENGTH);
-failure3:
+exit_free_irq:
        free_irq(nvt->cir_irq, nvt);
-failure2:
+exit_release_cir_addr:
        release_region(nvt->cir_addr, CIR_IOREG_LENGTH);
-failure:
+exit_free_dev_rdev:
        rc_free_device(rdev);
        kfree(nvt);