Index: kernel/arch/ia32/include/asm.h
===================================================================
--- kernel/arch/ia32/include/asm.h	(revision f74bbaf20e8d8be55495c56affc5b17ef6ea2bf0)
+++ kernel/arch/ia32/include/asm.h	(revision 6aea2e00a9dff770535c546c162457a46e9fe11b)
@@ -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 6aea2e00a9dff770535c546c162457a46e9fe11b)
@@ -249,4 +249,5 @@
 	asm volatile (
 		"int $0x03\n"
+		"cli\n"
 		"hlt\n"
 	);
