projects
/
GitHub
/
LineageOS
/
android_kernel_motorola_exynos9610.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
[RAMEN9610-21500]HID: Fix assumption that devices have inputs
[GitHub/LineageOS/android_kernel_motorola_exynos9610.git]
/
drivers
/
hid
/
hid-tmff.c
diff --git
a/drivers/hid/hid-tmff.c
b/drivers/hid/hid-tmff.c
index b83376077d72282ac3373fe700e8d273d303fc1f..9e908d94cc4c6f0fb494d358dfb387e7fd9a37e6 100644
(file)
--- a/
drivers/hid/hid-tmff.c
+++ b/
drivers/hid/hid-tmff.c
@@
-126,12
+126,18
@@
static int tmff_init(struct hid_device *hid, const signed short *ff_bits)
struct tmff_device *tmff;
struct hid_report *report;
struct list_head *report_list;
struct tmff_device *tmff;
struct hid_report *report;
struct list_head *report_list;
- struct hid_input *hidinput = list_entry(hid->inputs.next,
- struct hid_input, list);
- struct input_dev *input_dev = hidinput->input;
+ struct hid_input *hidinput;
+ struct input_dev *input_dev;
int error;
int i;
int error;
int i;
+ if (list_empty(&hid->inputs)) {
+ hid_err(hid, "no inputs found\n");
+ return -ENODEV;
+ }
+ hidinput = list_entry(hid->inputs.next, struct hid_input, list);
+ input_dev = hidinput->input;
+
tmff = kzalloc(sizeof(struct tmff_device), GFP_KERNEL);
if (!tmff)
return -ENOMEM;
tmff = kzalloc(sizeof(struct tmff_device), GFP_KERNEL);
if (!tmff)
return -ENOMEM;