From b13e2ebe15574841705fc20978892ccad3796ae6 Mon Sep 17 00:00:00 2001 From: Pol Henarejos Date: Mon, 1 Jun 2026 13:17:42 +0200 Subject: [PATCH] Avoid blocking under mutex in usb_send_event --- src/usb/usb.c | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/src/usb/usb.c b/src/usb/usb.c index a4d21d3..19ffc36 100644 --- a/src/usb/usb.c +++ b/src/usb/usb.c @@ -250,20 +250,21 @@ void usb_send_event(uint32_t flag) { if (flag == EV_CMD_AVAILABLE) { timeout_start(); } +#ifndef ENABLE_EMULATION + mutex_exit(&mutex); +#endif + if (flag != EV_CMD_AVAILABLE) { uint32_t m; queue_remove_blocking(&card_to_usb_q , &m); } -#ifndef ENABLE_EMULATION - mutex_exit(&mutex); -#endif } void card_init_core1(void) { low_flash_init_core1(); } -uint16_t finished_data_size = 0; +volatile uint16_t finished_data_size = 0; void card_start(uint8_t itf, void *(*func)(void *)) { timeout_start();