From 137efe3bc2551734100c1ded1031b6cd3b0d18bf Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C5=81ukasz=20Rymanowski?= Date: Fri, 22 Feb 2019 13:52:43 +0100 Subject: [PATCH] nimble/ll: Improve scanner stop With this patch aux data cleaning and scheduler clean from aux_ptrs is done only when extended scanner was enabled. --- nimble/controller/src/ble_ll_scan.c | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/nimble/controller/src/ble_ll_scan.c b/nimble/controller/src/ble_ll_scan.c index dca7031c4..37a573b0e 100644 --- a/nimble/controller/src/ble_ll_scan.c +++ b/nimble/controller/src/ble_ll_scan.c @@ -1338,11 +1338,14 @@ ble_ll_scan_sm_stop(int chk_disable) scansm->restart_timer_needed = 0; #if MYNEWT_VAL(BLE_LL_CFG_FEAT_LL_EXT_ADV) - OS_ENTER_CRITICAL(sr); - ble_ll_scan_clean_cur_aux_data(); - OS_EXIT_CRITICAL(sr); + if (scansm->ext_scanning) { + OS_ENTER_CRITICAL(sr); + ble_ll_scan_clean_cur_aux_data(); + OS_EXIT_CRITICAL(sr); - ble_ll_sched_rmv_elem_type(BLE_LL_SCHED_TYPE_AUX_SCAN, ble_ll_scan_sched_remove); + ble_ll_sched_rmv_elem_type(BLE_LL_SCHED_TYPE_AUX_SCAN, ble_ll_scan_sched_remove); + scansm->ext_scanning = 0; + } #endif /* Count # of times stopped */