micropython/extmod
Damien George f2ad152e7e extmod/modbluetooth: Run BLE IRQ callback in protected NLR context.
The call to invoke_irq_handler_run() always needs to run in a protected NLR
context, to catch exceptions from the Python handler, and the m_new's (and
also mp_local_alloc when PYSTACK is enabled).  With
MICROPY_PY_BLUETOOTH_USE_SYNC_EVENTS_WITH_INTERLOCK enabled there was
already an explicit nlr_push, and that is now used in all cases.

Without this change, on stm32 (for example), the callbacks from the BLE
stack to invoke_irq_handler() were made via static scheduled nodes which do
not have any NLR protection, and hence would lead to a hard fault (uncaught
NLR) if an exception was raised in the Python BLE IRQ handler.  This was a
regression introduced by 8045ac07f5, which is
fixed by this commit.

Signed-off-by: Damien George <damien@micropython.org>
2022-09-23 15:21:54 +10:00
..
axtls-include
btstack
lwip-include
nimble
uasyncio
extmod.cmake
extmod.mk
font_petme128_8x8.h
machine_bitstream.c
machine_bitstream.h
machine_i2c.c
machine_i2c.h
machine_mem.c
machine_mem.h
machine_pinbase.c
machine_pinbase.h
machine_pulse.c
machine_pulse.h
machine_pwm.c
machine_pwm.h
machine_signal.c
machine_signal.h
machine_spi.c
machine_spi.h
misc.h
modbluetooth.c
modbluetooth.h
modbtree.c
modframebuf.c
modlwip.c
modnetwork.c
modnetwork.h
modonewire.c
moduasyncio.c
modubinascii.c
moducryptolib.c
moductypes.c py/obj: Convert make_new into a mp_obj_type_t slot. 2022-09-19 19:06:15 +10:00
moduhashlib.c py/obj: Convert make_new into a mp_obj_type_t slot. 2022-09-19 19:06:15 +10:00
moduheapq.c all: Remove third argument to MP_REGISTER_MODULE. 2022-06-02 16:31:37 +10:00
modujson.c
moduos.c
moduplatform.c
moduplatform.h
modurandom.c
modure.c
moduselect.c
modusocket.c
modussl_axtls.c
modussl_mbedtls.c
modutimeq.c
moduwebsocket.c
moduwebsocket.h
moduzlib.c
modwebrepl.c
mpbthci.c
mpbthci.h
network_cyw43.c
network_cyw43.h
network_ninaw10.c
network_wiznet5k.c
uos_dupterm.c
utime_mphal.c
utime_mphal.h
vfs.c
vfs.h
vfs_blockdev.c
vfs_fat.c
vfs_fat.h
vfs_fat_diskio.c
vfs_fat_file.c
vfs_lfs.c
vfs_lfs.h
vfs_lfsx.c
vfs_lfsx_file.c
vfs_posix.c
vfs_posix.h
vfs_posix_file.c
vfs_reader.c
virtpin.c py/obj: Add accessors for type slots and use everywhere. 2022-09-19 19:06:07 +10:00
virtpin.h