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: <vojtech@suse.cz>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
 
 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);