Bluetooth HID devices not getting properly removed
From: Thomas Bächler
Date: Wed Jun 24 2009 - 07:11:36 EST
I am unsure where to put this bug, because it actually manifests inside
HAL. I think the bluetooth hid driver is at fault, because there is an
inconsistency in uevents between USB and bluetooth mice.
So this is what happens: When I add a bluetooth mouse, udev receives
certain uevents, this is an excerpt from udevadm monitor:
KERNEL[1245834026.993304] add
/devices/pci0000:00/0000:00:1d.0/usb2/2-2/2-2:1.0/bluetooth/hci0/hci0:11
(bluetooth)
KERNEL[1245834027.252241] add
/devices/pci0000:00/0000:00:1d.0/usb2/2-2/2-2:1.0/bluetooth/hci0/hci0:11/0005:046D:B002.0005
(hid)
KERNEL[1245834027.252301] add
/devices/pci0000:00/0000:00:1d.0/usb2/2-2/2-2:1.0/bluetooth/hci0/hci0:11/input12
(input)
Pay attention to the input device, it is added with a full device path.
When removing the mouse, this happens:
KERNEL[1245834012.631443] remove
/devices/pci0000:00/0000:00:1d.0/usb2/2-2/2-2:1.0/bluetooth/hci0/hci0:11
(bluetooth)
KERNEL[1245834012.632668] remove /hci0:11/input12/mouse2 (input)
KERNEL[1245834012.641797] remove /hci0:11/input12/event8 (input)
KERNEL[1245834012.655447] remove /hci0:11/input12 (input)
KERNEL[1245834012.655502] remove /hci0:11/0005:046D:B002.0004 (hid)
See how the device path of the removed input devices is truncated? When
I do the same with a USB mouse, a full device path is returned each time.
All of this results in hal not removing its logical input device, which
means the number of (non-existent) mice in the hal device tree increases
whenever I disable and re-enable my mouse.
So where do I put this bug? Linux? Bluez? Udev? Hal? My guess is Linux,
as these device paths come from Linux originally and are in fact
inconsistent. This is all tested on 2.6.30, I have no idea if it was the
case on older kernels.
Please CC me on replies.
Attachment:
signature.asc
Description: OpenPGP digital signature