zephyr/subsys
Piotr Pryga 3715241bde Bluetooth: Controller: fix per sync hang if wrong cte and list filter
In case of use of filtering based on: periodic advertising list and
CTE type, the synchronization can hang. That is possible if a periodic
advertiser uses wrong CTE type. In such situation the sync is not
released in ull_sync_done call. What more the sync->timeout_reload
is not cleared and Host is not able to cancel the synchronization.
The periodic advertising is in a semi-sync-established state.
There are no reports send to Host. Host can't use the sync set to
synchronize with other device. It is only able to terminate the
sync (call to ll_sync_terminate).

To fix the issue following changes should be applied:
- isr_rx_adv_sync_estab should call isr_rx_done_cleanup
with sync_term parameter in case the sync_ok isn't SYNC_STAT_ALLOWED.
In any case the CTE type is wrong, no matter is the periodic
advertising list filtering is enabled or not.
- ull_sync_established_report should set sync->is_term to true
in case the CTE type is not allowed. That change is required for devices
that do not support Direction Finding Extension. For those devices CTE
type based filtering is done in ULL by ull_sync_established_report
function. The sync->is_term should be set unconditionally, hence is
moved up in the function.

With these two changes done, ull_sync_done function will execute
sync_ticker_release in case the CTE has wrong type. ULL, depending on
notifications prepared by ull_sync_established_report, will follow up
on sync termination if required.

Signed-off-by: Piotr Pryga <piotr.pryga@nordicsemi.no>
2022-05-16 10:08:06 +02:00
..
bluetooth Bluetooth: Controller: fix per sync hang if wrong cte and list filter 2022-05-16 10:08:06 +02:00
canbus subsystems: migrate includes to <zephyr/...> 2022-05-09 12:07:35 +02:00
console subsystems: migrate includes to <zephyr/...> 2022-05-09 12:07:35 +02:00
cpp subsystems: migrate includes to <zephyr/...> 2022-05-09 12:07:35 +02:00
debug subsystems: migrate includes to <zephyr/...> 2022-05-09 12:07:35 +02:00
demand_paging subsystems: migrate includes to <zephyr/...> 2022-05-09 12:07:35 +02:00
dfu subsystems: migrate includes to <zephyr/...> 2022-05-09 12:07:35 +02:00
disk subsystems: migrate includes to <zephyr/...> 2022-05-09 12:07:35 +02:00
emul subsystems: migrate includes to <zephyr/...> 2022-05-09 12:07:35 +02:00
fb subsystems: migrate includes to <zephyr/...> 2022-05-09 12:07:35 +02:00
fs subsystems: migrate includes to <zephyr/...> 2022-05-09 12:07:35 +02:00
ipc subsystems: migrate includes to <zephyr/...> 2022-05-09 12:07:35 +02:00
jwt subsystems: migrate includes to <zephyr/...> 2022-05-09 12:07:35 +02:00
logging logging: syst: embed log message source IDs in Sys-T messages 2022-05-09 12:54:53 -05:00
lorawan subsystems: migrate includes to <zephyr/...> 2022-05-09 12:07:35 +02:00
mgmt mgmt/mcumgr/lib: Make version string work with CONFIG_NEWLIB_LIBC 2022-05-15 21:33:05 +02:00
modbus subsystems: migrate includes to <zephyr/...> 2022-05-09 12:07:35 +02:00
net net: lwm2m: Fix SenML CBOR input basename length 2022-05-13 10:15:27 -05:00
pm pm: device_runtime: return -ENOTSUP if PM not supported 2022-05-15 21:34:46 +02:00
portability subsystems: migrate includes to <zephyr/...> 2022-05-09 12:07:35 +02:00
random subsystems: migrate includes to <zephyr/...> 2022-05-09 12:07:35 +02:00
sd sd: increase SDMMC busy wait timeout 2022-05-09 08:46:29 -05:00
settings settings: add shell commands to write and delete settings 2022-05-13 10:11:40 -05:00
shell logging: shell: fix shell stats null pointer dereference 2022-05-15 21:32:10 +02:00
stats subsystems: migrate includes to <zephyr/...> 2022-05-09 12:07:35 +02:00
storage subsystems: migrate includes to <zephyr/...> 2022-05-09 12:07:35 +02:00
task_wdt subsystems: migrate includes to <zephyr/...> 2022-05-09 12:07:35 +02:00
testsuite ztest: use TESTSUITE instead of test suite in output 2022-05-13 12:16:57 -04:00
timing subsystems: migrate includes to <zephyr/...> 2022-05-09 12:07:35 +02:00
tracing subsystems: migrate includes to <zephyr/...> 2022-05-09 12:07:35 +02:00
usb usb: dfu: Enable progressive erase for MCUX FlexSPI flash 2022-05-09 08:54:30 -05:00
CMakeLists.txt sd: Add common SD initialization code 2022-04-29 14:21:36 -05:00
Kconfig sd: Add common SD initialization code 2022-04-29 14:21:36 -05:00