HID: input: use __free(kfree) to clean up temporary buffers
The __free() cleanup automatically releases given resource when leaving the scope, so use it to make the code less cluttered with error handling. Signed-off-by: Dmitry Torokhov <dmitry.torokhov@gmail.com> Signed-off-by: Jiri Kosina <jkosina@suse.com>master
parent
f0caa1d49c
commit
142068281f
|
|
@ -429,23 +429,18 @@ static int hidinput_scale_battery_capacity(struct hid_device *dev,
|
|||
|
||||
static int hidinput_query_battery_capacity(struct hid_device *dev)
|
||||
{
|
||||
u8 *buf;
|
||||
int ret;
|
||||
|
||||
buf = kmalloc(4, GFP_KERNEL);
|
||||
u8 *buf __free(kfree) = kmalloc(4, GFP_KERNEL);
|
||||
if (!buf)
|
||||
return -ENOMEM;
|
||||
|
||||
ret = hid_hw_raw_request(dev, dev->battery_report_id, buf, 4,
|
||||
dev->battery_report_type, HID_REQ_GET_REPORT);
|
||||
if (ret < 2) {
|
||||
kfree(buf);
|
||||
if (ret < 2)
|
||||
return -ENODATA;
|
||||
}
|
||||
|
||||
ret = hidinput_scale_battery_capacity(dev, buf[1]);
|
||||
kfree(buf);
|
||||
return ret;
|
||||
return hidinput_scale_battery_capacity(dev, buf[1]);
|
||||
}
|
||||
|
||||
static int hidinput_get_battery_property(struct power_supply *psy,
|
||||
|
|
@ -1836,7 +1831,6 @@ static void hidinput_led_worker(struct work_struct *work)
|
|||
struct hid_report *report;
|
||||
int ret;
|
||||
u32 len;
|
||||
__u8 *buf;
|
||||
|
||||
field = hidinput_get_led_field(hid);
|
||||
if (!field)
|
||||
|
|
@ -1863,7 +1857,7 @@ static void hidinput_led_worker(struct work_struct *work)
|
|||
|
||||
/* fall back to generic raw-output-report */
|
||||
len = hid_report_len(report);
|
||||
buf = hid_alloc_report_buf(report, GFP_KERNEL);
|
||||
u8 *buf __free(kfree) = hid_alloc_report_buf(report, GFP_KERNEL);
|
||||
if (!buf)
|
||||
return;
|
||||
|
||||
|
|
@ -1873,7 +1867,6 @@ static void hidinput_led_worker(struct work_struct *work)
|
|||
if (ret == -ENOSYS)
|
||||
hid_hw_raw_request(hid, report->id, buf, len, HID_OUTPUT_REPORT,
|
||||
HID_REQ_SET_REPORT);
|
||||
kfree(buf);
|
||||
}
|
||||
|
||||
static int hidinput_input_event(struct input_dev *dev, unsigned int type,
|
||||
|
|
|
|||
Loading…
Reference in New Issue