On Fri, Aug 28, 2009 at 11:58 PM, Guzman Lugo,

> @@ -324,7 +324,7 @@ static int __init bridge_init(void)
>        if (result < 0) {
>                GT_1trace(driverTrace, GT_7CLASS, "bridge_init: "
>                                "Can't get Major %d \n", driver_major);
> -               return result;
> +               goto err1;
>        }
>
>        driver_major = MAJOR(dev);
> @@ -332,19 +332,17 @@ static int __init bridge_init(void)
>        bridge_device = kmalloc(sizeof(struct bridge_dev), GFP_KERNEL);
>        if (!bridge_device) {
>                result = -ENOMEM;
> -               unregister_chrdev_region(dev, 1);
> -               return result;
> +               goto err2;
>        }
>        cdev_init(&bridge_device->cdev, &bridge_fops);
>        bridge_device->cdev.owner = THIS_MODULE;
>        bridge_device->cdev.ops = &bridge_fops;
>
>        status = cdev_add(&bridge_device->cdev, dev, 1);
> -
>        if (status) {
>                GT_0trace(driverTrace, GT_7CLASS,
>                                "Failed to add the bridge device \n");
> -               return status;
result = status, isn't is?
or change status to result on previous lines.


> +               goto err3;
>        }
>
>        /* udev support */
> @@ -474,7 +472,17 @@ static int __init bridge_init(void)
>        DBC_Assert(status == 0);
>        DBC_Assert(DSP_SUCCEEDED(initStatus));
>        GT_0trace(driverTrace, GT_ENTER, " <- driver_init\n");
> -       return status;
> +
> +       return 0;
> +
> +err3:
> +       kfree(bridge_device);
> +
> +err2:
> +       unregister_chrdev_region(dev, 1);
> +
> +err1:
> +       return result;
>  }
>
>  /*  This function is invoked during unlinking of the bridge module from the


-- 
With Best Regards,
Andy Shevchenko

Reply via email to