[RAMEN9610-21500]HID: Fix assumption that devices have inputs
[GitHub/LineageOS/android_kernel_motorola_exynos9610.git] / drivers / hid / hid-sony.c
index d03203a82e8f78962697791590ef45b35c003833..66fcdf19c4938455c363cb2ce02bd931be08570f 100644 (file)
@@ -2159,9 +2159,15 @@ static int sony_play_effect(struct input_dev *dev, void *data,
 
 static int sony_init_ff(struct sony_sc *sc)
 {
-       struct hid_input *hidinput = list_entry(sc->hdev->inputs.next,
-                                               struct hid_input, list);
-       struct input_dev *input_dev = hidinput->input;
+       struct hid_input *hidinput;
+       struct input_dev *input_dev;
+
+       if (list_empty(&sc->hdev->inputs)) {
+               hid_err(sc->hdev, "no inputs found\n");
+               return -ENODEV;
+       }
+       hidinput = list_entry(sc->hdev->inputs.next, struct hid_input, list);
+       input_dev = hidinput->input;
 
        input_set_capability(input_dev, EV_FF, FF_RUMBLE);
        return input_ff_create_memless(input_dev, NULL, sony_play_effect);