>From 8519ca72db9093d80d9a32c4482483c9ef8c51f0 Mon Sep 17 00:00:00 2001
From: Bram Hooimeijer <[email protected]>
Date: Thu, 10 Jun 2021 17:27:57 +0200
Subject: [PATCH V3 1/1] inmates/lib: Set cell-state to shutdown in stop()

Ensures that calls to stop(), defined in the inmate library, set the
cell-state to shutdown if the cell is still running.

This prevents the cell to be locked but unable to respond due to being
stuck in the halt() loop. It also ensures that a return to inmate_main()
shuts down the cell.

Signed-off-by: Bram Hooimeijer <[email protected]>
---
 inmates/lib/include/inmate_common.h | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/inmates/lib/include/inmate_common.h 
b/inmates/lib/include/inmate_common.h
index 1c20a0af..b7ea5559 100644
--- a/inmates/lib/include/inmate_common.h
+++ b/inmates/lib/include/inmate_common.h
@@ -93,6 +93,9 @@ typedef enum { true = 1, false = 0 } bool;
 static inline void __attribute__((noreturn)) stop(void)
 {
        disable_irqs();
+       if (comm_region->cell_state == JAILHOUSE_CELL_RUNNING ||
+           comm_region->cell_state == JAILHOUSE_CELL_RUNNING_LOCKED)
+               comm_region->cell_state = JAILHOUSE_CELL_SHUT_DOWN;
        halt();
 }
 
-- 
2.25.1

-- 
You received this message because you are subscribed to the Google Groups 
"Jailhouse" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/jailhouse-dev/AS8PR02MB6663FDC5904F5F8703613B34B6349%40AS8PR02MB6663.eurprd02.prod.outlook.com.

Reply via email to