Source
291
291
return status;
292
292
293
293
obj = buffer.pointer;
294
294
if (!obj || obj->type != ACPI_TYPE_PACKAGE || obj->package.count < 2) {
295
295
dev_err(&device->dev, "Invalid _FPS data\n");
296
296
status = -EINVAL;
297
297
goto err;
298
298
}
299
299
300
300
fan->fps_count = obj->package.count - 1; /* minus revision field */
301
-
fan->fps = devm_kzalloc(&device->dev,
302
-
fan->fps_count * sizeof(struct acpi_fan_fps),
301
+
fan->fps = devm_kcalloc(&device->dev,
302
+
fan->fps_count, sizeof(struct acpi_fan_fps),
303
303
GFP_KERNEL);
304
304
if (!fan->fps) {
305
305
dev_err(&device->dev, "Not enough memory\n");
306
306
status = -ENOMEM;
307
307
goto err;
308
308
}
309
309
for (i = 0; i < fan->fps_count; i++) {
310
310
struct acpi_buffer format = { sizeof("NNNNN"), "NNNNN" };
311
311
struct acpi_buffer fps = { sizeof(fan->fps[i]), &fan->fps[i] };
312
312
status = acpi_extract_package(&obj->package.elements[i + 1],