Skip to content

Commit e3d6a59

Browse files
basuamdJiri Kosina
authored andcommitted
HID: amd_sfh: Use devm_kzalloc() instead of kzalloc()
Replace kzalloc with devm_kzalloc in driver initialization sequence. The allocation can be tied to the lifetime of the amd_sfh driver. This cleans up an exit & error paths, since the objects does not need to be explicitly freed anymore. Fixes: 4b2c53d ("SFH:Transport Driver to add support of AMD Sensor Fusion Hub (SFH)") Reviewed-by: Shyam Sundar S K <[email protected]> Signed-off-by: Basavaraj Natikar <[email protected]> Signed-off-by: Jiri Kosina <[email protected]>
1 parent 82f09a6 commit e3d6a59

File tree

2 files changed

+9
-12
lines changed

2 files changed

+9
-12
lines changed

drivers/hid/amd-sfh-hid/amd_sfh_client.c

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -142,7 +142,7 @@ int amd_sfh_hid_client_init(struct amd_mp2_dev *privdata)
142142
int rc, i;
143143

144144
dev = &privdata->pdev->dev;
145-
cl_data = kzalloc(sizeof(*cl_data), GFP_KERNEL);
145+
cl_data = devm_kzalloc(dev, sizeof(*cl_data), GFP_KERNEL);
146146
if (!cl_data)
147147
return -ENOMEM;
148148

@@ -175,12 +175,12 @@ int amd_sfh_hid_client_init(struct amd_mp2_dev *privdata)
175175
rc = -EINVAL;
176176
goto cleanup;
177177
}
178-
cl_data->feature_report[i] = kzalloc(feature_report_size, GFP_KERNEL);
178+
cl_data->feature_report[i] = devm_kzalloc(dev, feature_report_size, GFP_KERNEL);
179179
if (!cl_data->feature_report[i]) {
180180
rc = -ENOMEM;
181181
goto cleanup;
182182
}
183-
cl_data->input_report[i] = kzalloc(input_report_size, GFP_KERNEL);
183+
cl_data->input_report[i] = devm_kzalloc(dev, input_report_size, GFP_KERNEL);
184184
if (!cl_data->input_report[i]) {
185185
rc = -ENOMEM;
186186
goto cleanup;
@@ -189,7 +189,8 @@ int amd_sfh_hid_client_init(struct amd_mp2_dev *privdata)
189189
info.sensor_idx = cl_idx;
190190
info.dma_address = cl_data->sensor_dma_addr[i];
191191

192-
cl_data->report_descr[i] = kzalloc(cl_data->report_descr_sz[i], GFP_KERNEL);
192+
cl_data->report_descr[i] =
193+
devm_kzalloc(dev, cl_data->report_descr_sz[i], GFP_KERNEL);
193194
if (!cl_data->report_descr[i]) {
194195
rc = -ENOMEM;
195196
goto cleanup;
@@ -214,11 +215,11 @@ int amd_sfh_hid_client_init(struct amd_mp2_dev *privdata)
214215
cl_data->sensor_virt_addr[i],
215216
cl_data->sensor_dma_addr[i]);
216217
}
217-
kfree(cl_data->feature_report[i]);
218-
kfree(cl_data->input_report[i]);
219-
kfree(cl_data->report_descr[i]);
218+
devm_kfree(dev, cl_data->feature_report[i]);
219+
devm_kfree(dev, cl_data->input_report[i]);
220+
devm_kfree(dev, cl_data->report_descr[i]);
220221
}
221-
kfree(cl_data);
222+
devm_kfree(dev, cl_data);
222223
return rc;
223224
}
224225

@@ -241,6 +242,5 @@ int amd_sfh_hid_client_deinit(struct amd_mp2_dev *privdata)
241242
cl_data->sensor_dma_addr[i]);
242243
}
243244
}
244-
kfree(cl_data);
245245
return 0;
246246
}

drivers/hid/amd-sfh-hid/amd_sfh_hid.c

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -162,9 +162,6 @@ void amdtp_hid_remove(struct amdtp_cl_data *cli_data)
162162
int i;
163163

164164
for (i = 0; i < cli_data->num_hid_devices; ++i) {
165-
kfree(cli_data->feature_report[i]);
166-
kfree(cli_data->input_report[i]);
167-
kfree(cli_data->report_descr[i]);
168165
if (cli_data->hid_sensor_hubs[i]) {
169166
kfree(cli_data->hid_sensor_hubs[i]->driver_data);
170167
hid_destroy_device(cli_data->hid_sensor_hubs[i]);

0 commit comments

Comments
 (0)