diff --git a/nimble/host/src/ble_gap.c b/nimble/host/src/ble_gap.c index e8b00e2fe..091a126af 100644 --- a/nimble/host/src/ble_gap.c +++ b/nimble/host/src/ble_gap.c @@ -1966,13 +1966,17 @@ ble_gap_rx_peroidic_adv_sync_estab(const struct ble_hci_ev_le_subev_periodic_adv } ble_conn_reattempt.count += 1; ble_conn_reattempt.sync_reattempt = 1; + + ble_hs_unlock(); + rc = ble_gap_periodic_adv_sync_create(&ble_conn_reattempt.periodic_addr, ble_conn_reattempt.adv_sid, &ble_conn_reattempt.periodic_params, ble_conn_reattempt.cb, ble_conn_reattempt.cb_arg); if (rc != 0) { - ble_hs_unlock(); return; } + + ble_hs_lock(); } } #endif