req_ctx: Fix allocation (allocate 1 block, not all) and call _init()
diff --git a/firmware/src_simtrace/main.c b/firmware/src_simtrace/main.c
index 95adb7e..faba147 100644
--- a/firmware/src_simtrace/main.c
+++ b/firmware/src_simtrace/main.c
@@ -4,6 +4,8 @@
  *------------------------------------------------------------------------------*/
 
 #include "board.h"
+#include "utils.h"
+#include "req_ctx.h"
 
 /*------------------------------------------------------------------------------
  *         Internal variables
@@ -95,6 +97,8 @@
     /* Disable watchdog*/
     WDT_Disable( WDT ) ;
 
+    req_ctx_init();
+
     PIO_InitializeInterrupts(0);
 
     SIMtrace_USB_Initialize();
diff --git a/firmware/src_simtrace/req_ctx.c b/firmware/src_simtrace/req_ctx.c
index 40774fe..7e9cffd 100644
--- a/firmware/src_simtrace/req_ctx.c
+++ b/firmware/src_simtrace/req_ctx.c
@@ -52,6 +52,7 @@
 		if (req_ctx[i].state == old_state) {
 			toReturn = &req_ctx[i];
 			toReturn->state = new_state;
+			break;
 		}
 	}
 	local_irq_restore(flags);
diff --git a/firmware/src_simtrace/req_ctx.h b/firmware/src_simtrace/req_ctx.h
index be964ca..67090a1 100644
--- a/firmware/src_simtrace/req_ctx.h
+++ b/firmware/src_simtrace/req_ctx.h
@@ -52,6 +52,7 @@
 	uint8_t *data;
 };
 
+extern void req_ctx_init(void);
 extern struct req_ctx __ramfunc *req_ctx_find_get(int large, uint32_t old_state, uint32_t new_state);
 extern struct req_ctx *req_ctx_find_busy(void);
 extern void req_ctx_set_state(struct req_ctx *ctx, uint32_t new_state);