• F
    Bluetooth: mgmt/hci_core: multi-adv for add_advertising*() · fffd38bc
    Florian Grandel 提交于
    The add_advertising() and add_advertising_complete() functions reference
    the now obsolete hdev->adv_instance struct. Both methods are being
    refactored to access the dynamic advertising instance list instead.
    
    This patch also introduces all logic necessary to actually deal with
    multiple instance advertising. Notably the mgmt_adv_inst_expired() and
    schedule_adv_inst() method are being referenced to schedule instances in
    a round robin fashion.
    
    This patch also introduces a "pending" flag into the adv_info struct.
    This is necessary to identify and remove recently added advertising
    instances when the HCI commands return with an error status code.
    Otherwise new advertising instances could be leaked without properly
    informing userspace about their existence.
    Signed-off-by: NFlorian Grandel <fgrandel@gmail.com>
    Signed-off-by: NMarcel Holtmann <marcel@holtmann.org>
    fffd38bc
hci_core.c 102.2 KB