Index: kernel/arch/ia32/include/asm.h
===================================================================
--- kernel/arch/ia32/include/asm.h	(revision f74bbaf20e8d8be55495c56affc5b17ef6ea2bf0)
+++ kernel/arch/ia32/include/asm.h	(revision ddee70820f4858a2e9e0b986ad80d7f6246fac41)
@@ -60,10 +60,10 @@
 static inline void cpu_halt(void)
 {
-	asm("hlt\n");
+	asm volatile ("hlt\n");
 };
 
 static inline void cpu_sleep(void)
 {
-	asm("hlt\n");
+	asm volatile ("hlt\n");
 };
 
Index: kernel/arch/ia32/src/pm.c
===================================================================
--- kernel/arch/ia32/src/pm.c	(revision f74bbaf20e8d8be55495c56affc5b17ef6ea2bf0)
+++ kernel/arch/ia32/src/pm.c	(revision ddee70820f4858a2e9e0b986ad80d7f6246fac41)
@@ -249,4 +249,5 @@
 	asm volatile (
 		"int $0x03\n"
+		"cli\n"
 		"hlt\n"
 	);
