|
@@ -2274,7 +2274,8 @@ static int __devinit f71882fg_probe(struct platform_device *pdev)
|
|
|
int err, i;
|
|
|
u8 start_reg, reg;
|
|
|
|
|
|
- data = kzalloc(sizeof(struct f71882fg_data), GFP_KERNEL);
|
|
|
+ data = devm_kzalloc(&pdev->dev, sizeof(struct f71882fg_data),
|
|
|
+ GFP_KERNEL);
|
|
|
if (!data)
|
|
|
return -ENOMEM;
|
|
|
|
|
@@ -2288,13 +2289,11 @@ static int __devinit f71882fg_probe(struct platform_device *pdev)
|
|
|
start_reg = f71882fg_read8(data, F71882FG_REG_START);
|
|
|
if (start_reg & 0x04) {
|
|
|
dev_warn(&pdev->dev, "Hardware monitor is powered down\n");
|
|
|
- err = -ENODEV;
|
|
|
- goto exit_free;
|
|
|
+ return -ENODEV;
|
|
|
}
|
|
|
if (!(start_reg & 0x03)) {
|
|
|
dev_warn(&pdev->dev, "Hardware monitoring not activated\n");
|
|
|
- err = -ENODEV;
|
|
|
- goto exit_free;
|
|
|
+ return -ENODEV;
|
|
|
}
|
|
|
|
|
|
/* Register sysfs interface files */
|
|
@@ -2422,8 +2421,6 @@ static int __devinit f71882fg_probe(struct platform_device *pdev)
|
|
|
exit_unregister_sysfs:
|
|
|
f71882fg_remove(pdev); /* Will unregister the sysfs files for us */
|
|
|
return err; /* f71882fg_remove() also frees our data */
|
|
|
-exit_free:
|
|
|
- kfree(data);
|
|
|
return err;
|
|
|
}
|
|
|
|
|
@@ -2525,10 +2522,6 @@ static int f71882fg_remove(struct platform_device *pdev)
|
|
|
ARRAY_SIZE(fxxxx_auto_pwm_attr[0]) * nr_fans);
|
|
|
}
|
|
|
}
|
|
|
-
|
|
|
- platform_set_drvdata(pdev, NULL);
|
|
|
- kfree(data);
|
|
|
-
|
|
|
return 0;
|
|
|
}
|
|
|
|