• F
    Bluetooth: mgmt: multi adv for remove_advertising*() · 01948331
    Florian Grandel 提交于
    The remove_advertising() and remove_advertising_complete() functions
    had instance identifiers hard coded. Notably, when passing in 0x00 as
    an instance identifier to signal that all instances should be removed
    then the mgmt API would return a hard coded 0x01 rather than returning
    the expected value 0x00. This bug is being fixed by always referencing
    the instance identifier from the management API call instead.
    
    remove_advertising() is refactored to use the new dynamic advertising
    instance list. The logic is being changed to make multi-instance
    advertising actually work, notably the schedule_adv_instance() method is
    being referenced to make sure that other instances will continue to
    advertise even if one instance is being removed.
    
    The code is made more readable by factoring advertising instance
    management and initialization into the low-level
    hci_remove_adv_instance() and hci_adv_instances_clear() functions.
    
    The method now references the clear_adv_instance() helper method to
    remove duplicate logic and code.
    Signed-off-by: NFlorian Grandel <fgrandel@gmail.com>
    Signed-off-by: NMarcel Holtmann <marcel@holtmann.org>
    01948331
mgmt.c 209.6 KB