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
..
2021-07-12 16:37:07 +10:00
2022-09-09 11:24:24 +10:00
2017-07-18 11:57:39 +10:00
2022-09-09 11:24:24 +10:00
2022-09-05 18:43:18 +10:00
2022-07-18 22:55:22 +10:00
2022-07-18 22:55:22 +10:00
2022-05-05 13:30:40 +10:00
2021-08-19 22:50:11 +10:00
2021-08-19 22:50:11 +10:00
2022-09-19 19:06:15 +10:00
2022-09-19 19:06:15 +10:00
2022-09-19 19:06:15 +10:00
2017-07-31 18:35:40 +10:00
2022-09-19 19:06:15 +10:00
2017-07-18 11:57:39 +10:00
2019-07-01 22:53:00 +10:00
2017-07-18 11:57:39 +10:00
2022-09-19 19:06:15 +10:00
2021-09-04 16:31:17 +10:00
2022-09-19 19:06:15 +10:00
2017-07-18 11:57:39 +10:00
2022-09-19 19:06:15 +10:00
2022-09-19 19:06:15 +10:00
2022-03-09 10:03:23 +11:00
2022-09-23 15:21:54 +10:00
2022-09-22 11:47:03 +10:00
2022-09-19 19:06:15 +10:00
2022-09-19 19:06:15 +10:00
2022-09-19 19:06:15 +10:00
2022-07-18 13:50:25 +10:00
2022-09-19 19:06:04 +10:00
2022-06-02 16:31:37 +10:00
2022-09-19 19:06:15 +10:00
2022-08-26 16:43:55 +10:00
2022-09-19 19:06:15 +10:00
2022-09-19 19:06:15 +10:00
2022-09-19 19:06:15 +10:00
2022-06-02 16:31:37 +10:00
2022-08-26 16:44:35 +10:00
2022-06-02 16:31:37 +10:00
2022-06-02 16:31:37 +10:00
2022-02-22 00:59:14 +11:00
2022-06-07 23:41:49 +10:00
2022-09-19 19:06:15 +10:00
2022-09-19 19:06:15 +10:00
2022-09-19 19:06:15 +10:00
2022-09-19 19:06:15 +10:00
2022-09-19 19:06:15 +10:00
2022-09-19 19:06:15 +10:00
2022-09-19 19:06:15 +10:00
2019-02-14 00:35:45 +11:00
2022-09-19 19:06:15 +10:00
2022-09-19 19:06:15 +10:00
2020-09-08 11:41:31 +10:00
2022-06-03 11:53:28 +10:00
2022-09-19 19:06:15 +10:00
2019-06-03 16:47:35 +10:00
2022-09-19 19:06:15 +10:00
2022-09-19 19:06:15 +10:00
2022-07-18 13:52:01 +10:00
2021-07-22 00:05:17 +10:00
2020-10-01 14:20:42 +10:00
2020-02-28 10:33:03 +11:00
2020-06-19 22:07:32 +10:00
2022-09-19 19:06:15 +10:00
2022-09-19 19:06:15 +10:00
2019-10-29 12:12:37 +11:00
2021-07-12 17:08:10 +10:00
2019-10-29 14:17:29 +11:00
2022-09-19 19:06:15 +10:00
2022-09-19 19:06:15 +10:00
2022-09-19 23:44:50 +10:00
2022-09-19 19:06:15 +10:00
2018-06-06 14:33:42 +10:00
2020-08-12 23:40:50 +10:00
2022-09-19 19:06:15 +10:00
2022-05-25 13:04:45 +10:00
2022-09-19 19:06:07 +10:00
2017-07-18 11:57:39 +10:00