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