Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

misc: bh1770glc: Use managed functions

This patch introduces the use of managed interfaces like devm_kzalloc,
devm_regulator_bulk_get and does away with the functions to free the
allocated memory in the probe and remove functions. Also, some labels
are removed and renamed to preserve the ordering.

Signed-off-by: Himangi Saraogi <himangi774@gmail.com>
Acked-by: Julia Lawall <julia.lawall@lip6.fr>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

authored by

Himangi Saraogi and committed by
Greg Kroah-Hartman
4734e390 0178a7a5

+14 -21
+14 -21
drivers/misc/bh1770glc.c
··· 1185 1185 struct bh1770_chip *chip; 1186 1186 int err; 1187 1187 1188 - chip = kzalloc(sizeof *chip, GFP_KERNEL); 1188 + chip = devm_kzalloc(&client->dev, sizeof *chip, GFP_KERNEL); 1189 1189 if (!chip) 1190 1190 return -ENOMEM; 1191 1191 ··· 1198 1198 1199 1199 if (client->dev.platform_data == NULL) { 1200 1200 dev_err(&client->dev, "platform data is mandatory\n"); 1201 - err = -EINVAL; 1202 - goto fail1; 1201 + return -EINVAL; 1203 1202 } 1204 1203 1205 1204 chip->pdata = client->dev.platform_data; ··· 1223 1224 chip->regs[0].supply = reg_vcc; 1224 1225 chip->regs[1].supply = reg_vleds; 1225 1226 1226 - err = regulator_bulk_get(&client->dev, 1227 - ARRAY_SIZE(chip->regs), chip->regs); 1227 + err = devm_regulator_bulk_get(&client->dev, 1228 + ARRAY_SIZE(chip->regs), chip->regs); 1228 1229 if (err < 0) { 1229 1230 dev_err(&client->dev, "Cannot get regulators\n"); 1230 - goto fail1; 1231 + return err; 1231 1232 } 1232 1233 1233 1234 err = regulator_bulk_enable(ARRAY_SIZE(chip->regs), 1234 1235 chip->regs); 1235 1236 if (err < 0) { 1236 1237 dev_err(&client->dev, "Cannot enable regulators\n"); 1237 - goto fail2; 1238 + return err; 1238 1239 } 1239 1240 1240 1241 usleep_range(BH1770_STARTUP_DELAY, BH1770_STARTUP_DELAY * 2); 1241 1242 err = bh1770_detect(chip); 1242 1243 if (err < 0) 1243 - goto fail3; 1244 + goto fail0; 1244 1245 1245 1246 /* Start chip */ 1246 1247 bh1770_chip_on(chip); ··· 1251 1252 if (chip->lux_corr == 0) { 1252 1253 dev_err(&client->dev, "Improper correction values\n"); 1253 1254 err = -EINVAL; 1254 - goto fail3; 1255 + goto fail0; 1255 1256 } 1256 1257 1257 1258 if (chip->pdata->setup_resources) { 1258 1259 err = chip->pdata->setup_resources(); 1259 1260 if (err) { 1260 1261 err = -EINVAL; 1261 - goto fail3; 1262 + goto fail0; 1262 1263 } 1263 1264 } 1264 1265 ··· 1266 1267 &bh1770_attribute_group); 1267 1268 if (err < 0) { 1268 1269 dev_err(&chip->client->dev, "Sysfs registration failed\n"); 1269 - goto fail4; 1270 + goto fail1; 1270 1271 } 1271 1272 1272 1273 /* ··· 1282 1283 if (err) { 1283 1284 dev_err(&client->dev, "could not get IRQ %d\n", 1284 1285 client->irq); 1285 - goto fail5; 1286 + goto fail2; 1286 1287 } 1287 1288 regulator_bulk_disable(ARRAY_SIZE(chip->regs), chip->regs); 1288 1289 return err; 1289 - fail5: 1290 + fail2: 1290 1291 sysfs_remove_group(&chip->client->dev.kobj, 1291 1292 &bh1770_attribute_group); 1292 - fail4: 1293 + fail1: 1293 1294 if (chip->pdata->release_resources) 1294 1295 chip->pdata->release_resources(); 1295 - fail3: 1296 + fail0: 1296 1297 regulator_bulk_disable(ARRAY_SIZE(chip->regs), chip->regs); 1297 - fail2: 1298 - regulator_bulk_free(ARRAY_SIZE(chip->regs), chip->regs); 1299 - fail1: 1300 - kfree(chip); 1301 1298 return err; 1302 1299 } 1303 1300 ··· 1317 1322 pm_runtime_disable(&client->dev); 1318 1323 pm_runtime_set_suspended(&client->dev); 1319 1324 1320 - regulator_bulk_free(ARRAY_SIZE(chip->regs), chip->regs); 1321 - kfree(chip); 1322 1325 return 0; 1323 1326 } 1324 1327