From: Pete Zaitcev It seems that I see a bug in hidinput_hid_event. The check for NULL can never work, becaue &hidinput->input is nonzero at all times. Cc: Cc: Greg KH Signed-off-by: Andrew Morton --- drivers/usb/input/hid-input.c | 5 +++-- 1 files changed, 3 insertions(+), 2 deletions(-) diff -puN drivers/usb/input/hid-input.c~usb-hidinput_hid_event-oops-fix drivers/usb/input/hid-input.c --- devel/drivers/usb/input/hid-input.c~usb-hidinput_hid_event-oops-fix 2005-07-25 20:49:18.000000000 -0700 +++ devel-akpm/drivers/usb/input/hid-input.c 2005-07-25 20:49:18.000000000 -0700 @@ -445,11 +445,12 @@ ignore: void hidinput_hid_event(struct hid_device *hid, struct hid_field *field, struct hid_usage *usage, __s32 value, struct pt_regs *regs) { - struct input_dev *input = &field->hidinput->input; + struct input_dev *input; int *quirks = &hid->quirks; - if (!input) + if (!field->hidinput) return; + input = &field->hidinput->input; input_regs(input, regs); _