In some cases, shutdown through the test device and Bochs might fail. Just hang in a loop that executes halt in such cases. Remove the __builtin_unreachable() as it is not needed anymore. Signed-off-by: Nadav Amit <nadav.amit@xxxxxxxxx> --- lib/x86/io.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/lib/x86/io.c b/lib/x86/io.c index f3e01f7..f4ffb44 100644 --- a/lib/x86/io.c +++ b/lib/x86/io.c @@ -99,7 +99,11 @@ void exit(int code) #else asm volatile("out %0, %1" : : "a"(code), "d"((short)0xf4)); #endif - __builtin_unreachable(); + + /* Fallback */ + while (1) { + asm volatile("hlt" ::: "memory"); + } } void __iomem *ioremap(phys_addr_t phys_addr, size_t size) -- 2.17.1