2009-10-29 12:39:32

by Herwig Hochleitner

[permalink] [raw]
Subject: apple bluetooth keyboard; bug #13104


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

hidp_connadd_req *req->rd_data

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.

kind regards

Herwig Hochleitner