• Chun-Yi Lee's avatar
    Bluetooth: hci_sync: Using hci_cmd_sync_submit when removing Adv Monitor · 88cd6e6b
    Chun-Yi Lee authored
    Since the d883a466 be introduced in v6.4, bluetooth daemon
    got the following failed message of MGMT_OP_REMOVE_ADV_MONITOR
    command when controller is power-off:
    
    bluetoothd[20976]:
    src/adapter.c:reset_adv_monitors_complete() Failed to reset Adv
    Monitors: Failed>
    
    Normally this situation is happened when the bluetoothd deamon
    be started manually after system booting. Which means that
    bluetoothd received MGMT_EV_INDEX_ADDED event after kernel
    runs hci_power_off().
    
    Base on doc/mgmt-api.txt, the MGMT_OP_REMOVE_ADV_MONITOR command
    can be used when the controller is not powered. This patch changes
    the code in remove_adv_monitor() to use hci_cmd_sync_submit()
    instead of hci_cmd_sync_queue().
    
    Fixes: d883a466 ("Bluetooth: hci_sync: Only allow hci_cmd_sync_queue if running")
    Cc: Luiz Augusto von Dentz <luiz.von.dentz@intel.com>
    Cc: Manish Mandlik <mmandlik@google.com>
    Cc: Archie Pusaka <apusaka@chromium.org>
    Cc: Miao-chen Chou <mcchou@chromium.org>
    Signed-off-by: default avatarChun-Yi Lee <jlee@suse.com>
    Signed-off-by: default avatarLuiz Augusto von Dentz <luiz.von.dentz@intel.com>
    88cd6e6b
mgmt.c 264 KB