Commit f1f73651 authored by Jiri Kosina's avatar Jiri Kosina

HID: hid-sensor-custom: Fix big on-stack allocation in hid_sensor_custom_get_known()

struct hid_sensor_custom_properties is currently 384 bytes big, which consumes
too much stack space for no good reason. Make it dynamically allocated.

Fixes: 98c062e8 ("HID: hid-sensor-custom: Allow more custom iio sensors")
Reported-by: default avatarkernel test robot <lkp@intel.com>
Signed-off-by: default avatarJiri Kosina <jkosina@suse.cz>
parent c8aca355
......@@ -911,21 +911,28 @@ hid_sensor_custom_get_known(struct hid_sensor_hub_device *hsdev,
int ret;
const struct hid_sensor_custom_match *match =
hid_sensor_custom_known_table;
struct hid_sensor_custom_properties prop;
struct hid_sensor_custom_properties *prop;
ret = hid_sensor_custom_properties_get(hsdev, &prop);
prop = kmalloc(sizeof(struct hid_sensor_custom_properties), GFP_KERNEL);
if (!prop)
return -ENOMEM;
ret = hid_sensor_custom_properties_get(hsdev, prop);
if (ret < 0)
return ret;
goto out;
while (match->tag) {
if (hid_sensor_custom_do_match(hsdev, match, &prop)) {
if (hid_sensor_custom_do_match(hsdev, match, prop)) {
*known = match;
return 0;
ret = 0;
goto out;
}
match++;
}
return -ENODATA;
ret = -ENODATA;
out:
kfree(prop);
return ret;
}
static struct platform_device *
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment