Skip to content

Commit

Permalink
[Invisalign2] Make BTA_DmBleConfigLocalPrivacy synchronous
Browse files Browse the repository at this point in the history
BTA_DmBleConfigLocalPrivacy is currently implemented
as asynchronous by posting a task to main thread.

With BTA_DmAddBleKey being made synchronous, this one
should be made synchronous, otherwise, IRKs of
bonded BLE devices won't be loaded properly if
BTA_DmAddBleKey is called before local privacy
is properly initialized, as reported in b/315736888.

Bug: 315736888
Bug: 311196228
Bug: 301661850

Test: atest net_test_btif_stack
Test: pair with a BLE device, restart Bluetooth and connec
Change-Id: Idc80e068767f2bb67450145fce3e0e3c8a2c45a5
  • Loading branch information
benquike committed Dec 14, 2023
1 parent 7f2e59e commit 21fa0c6
Showing 1 changed file with 7 additions and 2 deletions.
9 changes: 7 additions & 2 deletions system/bta/dm/bta_dm_api.cc
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,7 @@

#include <vector>

#include "android_bluetooth_flags.h"
#include "bta/dm/bta_dm_disc.h"
#include "bta/dm/bta_dm_int.h"
#include "bta/dm/bta_dm_sec_int.h"
Expand Down Expand Up @@ -273,8 +274,12 @@ void BTA_DmBleUpdateConnectionParams(const RawAddress& bd_addr,
*
******************************************************************************/
void BTA_DmBleConfigLocalPrivacy(bool privacy_enable) {
do_in_main_thread(FROM_HERE, base::BindOnce(bta_dm_ble_config_local_privacy,
privacy_enable));
if (IS_FLAG_ENABLED(synchronous_bta_sec)) {
bta_dm_ble_config_local_privacy(privacy_enable);
} else {
do_in_main_thread(FROM_HERE, base::BindOnce(bta_dm_ble_config_local_privacy,
privacy_enable));
}
}

/*******************************************************************************
Expand Down

0 comments on commit 21fa0c6

Please sign in to comment.