Index: kernel/arch/amd64/include/asm.h
===================================================================
--- kernel/arch/amd64/include/asm.h	(revision 3c79afe6675938ba3639db7d31f8a682457f7203)
+++ kernel/arch/amd64/include/asm.h	(revision 3a1c04856d3e268c907e5eef575e2931ca11f358)
@@ -70,5 +70,9 @@
 static inline void cpu_halt(void)
 {
-	asm volatile ("hlt\n");
+	asm volatile (
+		"0:\n"
+		"	hlt\n"
+		"	jmp 0b\n"
+	);
 }
 
Index: kernel/arch/ia32/include/asm.h
===================================================================
--- kernel/arch/ia32/include/asm.h	(revision 3c79afe6675938ba3639db7d31f8a682457f7203)
+++ kernel/arch/ia32/include/asm.h	(revision 3a1c04856d3e268c907e5eef575e2931ca11f358)
@@ -57,10 +57,14 @@
 /** Halt CPU
  *
- * Halt the current CPU until interrupt event.
+ * Halt the current CPU.
  *
  */
 static inline void cpu_halt(void)
 {
-	asm volatile ("hlt\n");
+	asm volatile (
+		"0:\n"
+		"	hlt\n"
+		"	jmp 0b\n"
+	);
 }
 
