• Marcel Holtmann's avatar
    Bluetooth: Add extra device reference counting for connections · 34976a3c
    Marcel Holtmann authored
    commit 9eba32b8 upstream.
    
    The device model itself has no real usable reference counting at the
    moment and this causes problems if parents are deleted before their
    children. The device model itself handles the memory details of this
    correctly, but the uevent order is not consistent. This causes various
    problems for systems like HAL or even X.
    
    So until device_put() does a proper cleanup, the device for Bluetooth
    connection will be protected with an extra reference counting to ensure
    the correct order of uevents when connections are terminated.
    
    This is not an automatic feature. Higher Bluetooth layers like HIDP or
    BNEP should grab this new reference to ensure that their uevents are
    send before the ones from the parent device.
    
    Based on a report by Brian Rogers <brian@xyzw.org>
    Signed-off-by: default avatarMarcel Holtmann <marcel@holtmann.org>
    Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@suse.de>
    34976a3c
hci_event.c 43.7 KB