circuitpython/ports
Damien George dd62c52a36 stm32/rfcore: Fix race condition with C2 accessing free buffer list.
Prior to this commit, if C2 was busy (eg lots of BLE activity) then it may
not have had time to respond to the notification on the IPCC_CH_MM channel
by the time additional memory was available to put on that buffer.  In such
a case C1 would modify the free buffer list while C2 was potentially
accessing it, and this would eventually lead to lost memory buffers (or a
corrupt linked list).  If all buffers become lost then ACL packets
(asynchronous events) can no longer be delivered from C2 to C1.

This commit fixes this issue by waiting for C2 to indicate that it has
finished using the free buffer list.

Work done in collaboration with Jim Mussared aka @jimmo.

Signed-off-by: Damien George <damien@micropython.org>
2021-04-12 21:43:04 +10:00
..
bare-arm bare-arm: Clean up the code, make it run on an F405, and add a README. 2021-03-19 14:20:26 +11:00
cc3200 tests: Rename run-tests to run-tests.py for consistency. 2021-03-12 19:56:09 +11:00
esp32 esp32: Enable btree module. 2021-04-09 13:33:26 +10:00
esp8266 esp8266/modules: Fix fs_corrupted() to use start_sec not START_SEC. 2021-02-09 10:46:07 +11:00
javascript tests: Rename run-tests to run-tests.py for consistency. 2021-03-12 19:56:09 +11:00
mimxrt mimxrt/boards: Add MIMXRT1050_EVK board, based on MIMXRT1060_EVK. 2021-03-11 16:42:38 +11:00
minimal ports: Disable MICROPY_PY_ASSIGN_EXPR in bare-arm and minimal ports. 2020-06-16 22:06:21 +10:00
nrf nrf/drivers/usb: Add USBD_IRQHandler which calls tud_int_handler. 2021-02-13 13:52:53 +11:00
pic16bit ports: Remove def of MP_PLAT_PRINT_STRN if it's the same as the default. 2021-02-04 22:39:17 +11:00
powerpc ports: Remove def of MP_PLAT_PRINT_STRN if it's the same as the default. 2021-02-04 22:39:17 +11:00
qemu-arm tests: Rename run-tests to run-tests.py for consistency. 2021-03-12 19:56:09 +11:00
rp2 rp2: Add support for building different board configurations. 2021-04-12 21:40:32 +10:00
samd samd/mphalport: Fix USB CDC tx handling to work reliably. 2021-02-12 14:09:01 +11:00
stm32 stm32/rfcore: Fix race condition with C2 accessing free buffer list. 2021-04-12 21:43:04 +10:00
teensy ports: Remove def of MP_PLAT_PRINT_STRN if it's the same as the default. 2021-02-04 22:39:17 +11:00
unix unix: Improve command line argument processing. 2021-04-07 12:41:25 +10:00
windows tests: Rename run-tests to run-tests.py for consistency. 2021-03-12 19:56:09 +11:00
zephyr py/py.cmake: Introduce MICROPY_INC_CORE as a list with core includes. 2021-04-09 13:08:35 +10:00