Re: [PATCH 66/95] hwmon: (pc87360) Convert to use devm_ functions

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Fri, Jun 15, 2012 at 9:23 AM, Guenter Roeck <linux@xxxxxxxxxxxx> wrote:
> Convert to use devm_ functions to reduce code size and simplify the code.
>
> Cc: Jim Cromie <jim.cromie@xxxxxxxxx>
> Signed-off-by: Guenter Roeck <linux@xxxxxxxxxxxx>

root@voyage:~# ./sensors > after
pc87360 pc87360.26144: Data update
root@voyage:~# diff before after
8c8
< in5:          +2.50 V  (min =  +0.00 V, max =  +3.01 V)
---
> in5:          +2.49 V  (min =  +0.00 V, max =  +3.01 V)
root@voyage:~# ieee80211 phy0: wlan0: No probe response from AP
00:14:d1:e8:65:0a after 500ms, try 1/5




Tested-by: Jim Cromie <jim.cromie@xxxxxxxxx>



> ---
>  drivers/hwmon/pc87360.c |   41 +++++++++++++----------------------------
>  1 file changed, 13 insertions(+), 28 deletions(-)
>
> diff --git a/drivers/hwmon/pc87360.c b/drivers/hwmon/pc87360.c
> index 79ba48c..91d5b2a 100644
> --- a/drivers/hwmon/pc87360.c
> +++ b/drivers/hwmon/pc87360.c
> @@ -1230,7 +1230,7 @@ static int __devinit pc87360_probe(struct platform_device *pdev)
>        int use_thermistors = 0;
>        struct device *dev = &pdev->dev;
>
> -       data = kzalloc(sizeof(struct pc87360_data), GFP_KERNEL);
> +       data = devm_kzalloc(dev, sizeof(struct pc87360_data), GFP_KERNEL);
>        if (!data)
>                return -ENOMEM;
>
> @@ -1269,15 +1269,12 @@ static int __devinit pc87360_probe(struct platform_device *pdev)
>        for (i = 0; i < LDNI_MAX; i++) {
>                data->address[i] = extra_isa[i];
>                if (data->address[i]
> -                && !request_region(extra_isa[i], PC87360_EXTENT,
> -                                   pc87360_driver.driver.name)) {
> +                && !devm_request_region(dev, extra_isa[i], PC87360_EXTENT,
> +                                        pc87360_driver.driver.name)) {
>                        dev_err(dev, "Region 0x%x-0x%x already "
>                                "in use!\n", extra_isa[i],
>                                extra_isa[i]+PC87360_EXTENT-1);
> -                       for (i--; i >= 0; i--)
> -                               release_region(extra_isa[i], PC87360_EXTENT);
> -                       err = -EBUSY;
> -                       goto ERROR1;
> +                       return -EBUSY;
>                }
>        }
>
> @@ -1325,13 +1322,13 @@ static int __devinit pc87360_probe(struct platform_device *pdev)
>        if (data->innr) {
>                err = sysfs_create_group(&dev->kobj, &pc8736x_vin_group);
>                if (err)
> -                       goto ERROR3;
> +                       goto error;
>        }
>
>        if (data->innr == 14) {
>                err = sysfs_create_group(&dev->kobj, &pc8736x_therm_group);
>                if (err)
> -                       goto ERROR3;
> +                       goto error;
>        }
>
>        /* create device attr-files for varying sysfs groups */
> @@ -1341,11 +1338,11 @@ static int __devinit pc87360_probe(struct platform_device *pdev)
>                        err = sysfs_create_group(&dev->kobj,
>                                                 &pc8736x_temp_attr_group[i]);
>                        if (err)
> -                               goto ERROR3;
> +                               goto error;
>                }
>                err = device_create_file(dev, &dev_attr_alarms_temp);
>                if (err)
> -                       goto ERROR3;
> +                       goto error;
>        }
>
>        for (i = 0; i < data->fannr; i++) {
> @@ -1353,49 +1350,37 @@ static int __devinit pc87360_probe(struct platform_device *pdev)
>                        err = sysfs_create_group(&dev->kobj,
>                                                 &pc8736x_fan_attr_group[i]);
>                        if (err)
> -                               goto ERROR3;
> +                               goto error;
>                }
>                if (FAN_CONFIG_CONTROL(data->fan_conf, i)) {
>                        err = device_create_file(dev, &pwm[i].dev_attr);
>                        if (err)
> -                               goto ERROR3;
> +                               goto error;
>                }
>        }
>
>        err = device_create_file(dev, &dev_attr_name);
>        if (err)
> -               goto ERROR3;
> +               goto error;
>
>        data->hwmon_dev = hwmon_device_register(dev);
>        if (IS_ERR(data->hwmon_dev)) {
>                err = PTR_ERR(data->hwmon_dev);
> -               goto ERROR3;
> +               goto error;
>        }
>        return 0;
>
> -ERROR3:
> +error:
>        pc87360_remove_files(dev);
> -       for (i = 0; i < 3; i++) {
> -               if (data->address[i])
> -                       release_region(data->address[i], PC87360_EXTENT);
> -       }
> -ERROR1:
> -       kfree(data);
>        return err;
>  }
>
>  static int __devexit pc87360_remove(struct platform_device *pdev)
>  {
>        struct pc87360_data *data = platform_get_drvdata(pdev);
> -       int i;
>
>        hwmon_device_unregister(data->hwmon_dev);
>        pc87360_remove_files(&pdev->dev);
> -       for (i = 0; i < 3; i++) {
> -               if (data->address[i])
> -                       release_region(data->address[i], PC87360_EXTENT);
> -       }
> -       kfree(data);
>
>        return 0;
>  }
> --
> 1.7.9.7
>

_______________________________________________
lm-sensors mailing list
lm-sensors@xxxxxxxxxxxxxx
http://lists.lm-sensors.org/mailman/listinfo/lm-sensors



[Index of Archives]     [Linux Kernel]     [Linux Hardware Monitoring]     [Linux USB Devel]     [Linux Audio Users]     [Linux Kernel]     [Linux SCSI]     [Yosemite Backpacking]

  Powered by Linux