zephyr/subsys/bluetooth/controller
Vinayak Kariappa Chettimada b5c63c69ca Bluetooth: controller: split: Fix ull_disable hang
Under race conditions it is possible that there is no call
to k_sem_give to the waiting k_sem_take in the ull_disable
function.

ull_disable function checks for reference count before
using a mayfly to schedule lll_disable, which in turn
would close requested currently active role event leading
to done event being propogated to ULL. Done event would
then call the set disabled_cb callback when the reference
count is zero, giving the semaphore to the waiting
k_sem_give in the ull_disable.

Under race conditions if the reference count reached zero
after the reference count check and before the disabled_cb
was assigned in the ull_disable function, then there are
chances that a k_sem_give is not called while ull_disable
proceeds to waiting using k_sem_take.

Fixes #21586.

Signed-off-by: Vinayak Kariappa Chettimada <vich@nordicsemi.no>
2020-01-16 10:54:40 +01:00
..
crypto Bluetooth: controller: Use entropy driver directly in bt_rand 2019-10-02 13:21:24 +02:00
hal Bluetooth: controller: Refactor use of SWI 2019-09-16 19:06:51 +02:00
hci Bluetooth: controller: Add set adv param cmd param validation 2020-01-06 17:42:34 +01:00
include Bluetooth: controller: enable dynamic TXP over LL_SPLIT arch (#17731) 2019-12-17 12:29:57 +01:00
ll_sw Bluetooth: controller: split: Fix ull_disable hang 2020-01-16 10:54:40 +01:00
ticker Bluetooth: controller: Add missing BT_DEBUG_ENABLED define 2019-11-21 17:08:37 +01:00
util Bluetooth: controller: Fix mayfly optimization 2019-09-24 10:37:23 +02:00
CMakeLists.txt bluetooth: controller: openisa/RV32M1: enable the BLE SW controller 2019-11-08 15:38:57 +01:00
Kconfig Bluetooth: controller: Fix CONFIG_BT_CTLR_TX_BUFFER_SIZE range 2020-01-15 15:26:19 +01:00