Commit 7b7bb90ca37914556c50947c4fcc09a9333cb9b6
1 parent
e3ecb2eeed
Exists in
smarc-l5.0.0_1.0.0-ga
and in
5 other branches
hwmon: (lm78) Convert to use devm_ functions
Convert to use devm_ functions to reduce code size and simplify the code. Cc: Jean Delvare <khali@linux-fr.org> Signed-off-by: Guenter Roeck <linux@roeck-us.net> Acked-by: Jean Delvare <khali@linux-fr.org>
Showing 1 changed file with 11 additions and 25 deletions Side-by-side Diff
drivers/hwmon/lm78.c
... | ... | @@ -660,7 +660,7 @@ |
660 | 660 | struct lm78_data *data; |
661 | 661 | int err; |
662 | 662 | |
663 | - data = kzalloc(sizeof(struct lm78_data), GFP_KERNEL); | |
663 | + data = devm_kzalloc(&client->dev, sizeof(struct lm78_data), GFP_KERNEL); | |
664 | 664 | if (!data) |
665 | 665 | return -ENOMEM; |
666 | 666 | |
667 | 667 | |
668 | 668 | |
669 | 669 | |
... | ... | @@ -674,20 +674,18 @@ |
674 | 674 | /* Register sysfs hooks */ |
675 | 675 | err = sysfs_create_group(&client->dev.kobj, &lm78_group); |
676 | 676 | if (err) |
677 | - goto ERROR3; | |
677 | + return err; | |
678 | 678 | |
679 | 679 | data->hwmon_dev = hwmon_device_register(&client->dev); |
680 | 680 | if (IS_ERR(data->hwmon_dev)) { |
681 | 681 | err = PTR_ERR(data->hwmon_dev); |
682 | - goto ERROR4; | |
682 | + goto error; | |
683 | 683 | } |
684 | 684 | |
685 | 685 | return 0; |
686 | 686 | |
687 | -ERROR4: | |
687 | +error: | |
688 | 688 | sysfs_remove_group(&client->dev.kobj, &lm78_group); |
689 | -ERROR3: | |
690 | - kfree(data); | |
691 | 689 | return err; |
692 | 690 | } |
693 | 691 | |
... | ... | @@ -697,7 +695,6 @@ |
697 | 695 | |
698 | 696 | hwmon_device_unregister(data->hwmon_dev); |
699 | 697 | sysfs_remove_group(&client->dev.kobj, &lm78_group); |
700 | - kfree(data); | |
701 | 698 | |
702 | 699 | return 0; |
703 | 700 | } |
704 | 701 | |
... | ... | @@ -844,16 +841,14 @@ |
844 | 841 | |
845 | 842 | /* Reserve the ISA region */ |
846 | 843 | res = platform_get_resource(pdev, IORESOURCE_IO, 0); |
847 | - if (!request_region(res->start + LM78_ADDR_REG_OFFSET, 2, "lm78")) { | |
848 | - err = -EBUSY; | |
849 | - goto exit; | |
850 | - } | |
844 | + if (!devm_request_region(&pdev->dev, res->start + LM78_ADDR_REG_OFFSET, | |
845 | + 2, "lm78")) | |
846 | + return -EBUSY; | |
851 | 847 | |
852 | - data = kzalloc(sizeof(struct lm78_data), GFP_KERNEL); | |
853 | - if (!data) { | |
854 | - err = -ENOMEM; | |
855 | - goto exit_release_region; | |
856 | - } | |
848 | + data = devm_kzalloc(&pdev->dev, sizeof(struct lm78_data), GFP_KERNEL); | |
849 | + if (!data) | |
850 | + return -ENOMEM; | |
851 | + | |
857 | 852 | mutex_init(&data->lock); |
858 | 853 | data->isa_addr = res->start; |
859 | 854 | platform_set_drvdata(pdev, data); |
860 | 855 | |
861 | 856 | |
... | ... | @@ -888,25 +883,16 @@ |
888 | 883 | exit_remove_files: |
889 | 884 | sysfs_remove_group(&pdev->dev.kobj, &lm78_group); |
890 | 885 | device_remove_file(&pdev->dev, &dev_attr_name); |
891 | - kfree(data); | |
892 | - exit_release_region: | |
893 | - release_region(res->start + LM78_ADDR_REG_OFFSET, 2); | |
894 | - exit: | |
895 | 886 | return err; |
896 | 887 | } |
897 | 888 | |
898 | 889 | static int __devexit lm78_isa_remove(struct platform_device *pdev) |
899 | 890 | { |
900 | 891 | struct lm78_data *data = platform_get_drvdata(pdev); |
901 | - struct resource *res; | |
902 | 892 | |
903 | 893 | hwmon_device_unregister(data->hwmon_dev); |
904 | 894 | sysfs_remove_group(&pdev->dev.kobj, &lm78_group); |
905 | 895 | device_remove_file(&pdev->dev, &dev_attr_name); |
906 | - kfree(data); | |
907 | - | |
908 | - res = platform_get_resource(pdev, IORESOURCE_IO, 0); | |
909 | - release_region(res->start + LM78_ADDR_REG_OFFSET, 2); | |
910 | 896 | |
911 | 897 | return 0; |
912 | 898 | } |