zephyr/subsys/bluetooth
Lingao Meng 2ef96e2f66 Bluetooth: Host: Fix unable cleanup conn
The peripheral is configured to update the connection
parameters for 5 seconds by default.

There is an abnormal situation with a very low probability.

The central actively disconnects or abnormally disconnects the
Bluetooth connection at the same time.

At this time, the connection disconnection event will be
handled by BT RX.

At this time, sysworkq has sent a parameter update request and
will receive a reply with status = 0x02, because the handle is
invalid at this time.

We can not just cancel work, because work->flag may be
in K_WORK_RUNNING, so work->flag is set to K_WORK_CANCELING
and subsequent conn_cleanup will unable call k_work_rescheduler
successfully.

According submit_to_queue_locked will return ret = -EBUSY.

	if (flag_test(&work->flags, K_WORK_CANCELING_BIT)) {
		/* Disallowed */
		ret = -EBUSY;
As a result, the connection cannot be cleanup correctly.

Signed-off-by: Lingao Meng <menglingao@xiaomi.com>
2022-04-29 15:35:10 +02:00
..
audio Bluetooth: ASCS: Fixed wrong state for detaching stream 2022-04-28 14:18:11 +02:00
common Bluetooth: Host: Add choice select whether BT RX 2022-04-11 10:58:09 +02:00
controller Bluetooth: controller: Fix central enc termination 2022-04-28 12:55:48 +02:00
host Bluetooth: Host: Fix unable cleanup conn 2022-04-29 15:35:10 +02:00
mesh Bluetooth: Mesh: Check SegN when receiving Transaction Start PDU 2022-04-28 08:56:01 +03:00
services Bluetooth: Audio: Add conn check for the OTC notify handler 2022-04-27 10:09:10 +02:00
shell Bluetooth: shell: Fix unused function warning 2022-04-28 10:26:25 +02:00
CMakeLists.txt
Kconfig Bluetooth: Increase supported maximum simultaneous connection to 250 2022-04-04 10:24:34 +02:00
Kconfig.adv Bluetooth: Kconfig: Move BT_LIM_ADV_TIMEOUT to host config 2022-03-17 11:12:47 +01:00
Kconfig.iso everywhere: fix typos 2022-03-18 13:24:08 -04:00