I recently bought the apple aluminium bluetooth keyboard, which is
supported in the kernel by drivers/hid/hid-apple.c
I get the same behaviour as described in
Ubuntu 9.04; 2.6.30-020630-generic x86_64 (mainline kernel)
First time connect dmesg output:
> apple 0005:05AC:022D.0002: parse failed
> apple: probe of 0005:05AC:022D.0002 failed with error -14
Power cycle the keyboard:
> input: Apple Wireless Keyboard as
> apple 0005:05AC:022D.0003: input,hidraw1: BLUETOOTH HID v1.40
Keyboard [Apple Wireless Keyboard] on 00:0D:F0:58:04:49
then it works.
I have tracked down the issue to the function hidp_parse() in
More specifically it tries to read from
via copy_from_user() and fails with -EFAULT.
Why does it only fail the first time?
Where does hid->session->req come from?
Since I have no experience with kernel development yet, I don't know how
to track this further. Any help will be much appreciated.