patch-2.1.72 linux/arch/i386/kernel/process.c

Next file: linux/arch/i386/kernel/sys_i386.c
Previous file: linux/arch/alpha/kernel/signal.c
Back to the patch index
Back to the overall index

diff -u --recursive --new-file v2.1.71/linux/arch/i386/kernel/process.c linux/arch/i386/kernel/process.c
@@ -281,22 +281,19 @@
 {
 
 	if(!reboot_thru_bios) {
-#if 0
-		sti();
-#endif
 		/* rebooting needs to touch the page at absolute addr 0 */
 		*((unsigned short *)__va(0x472)) = reboot_mode;
 		for (;;) {
 			int i;
 			for (i=0; i<100; i++) {
-				int j;
 				kb_wait();
-				for(j = 0; j < 100000 ; j++)
-					/* nothing */;
+				udelay(10);
 				outb(0xfe,0x64);         /* pulse reset low */
 				udelay(10);
 			}
-			__asm__ __volatile__("\tlidt %0": "=m" (no_idt));
+			/* That didn't work - force a triple fault.. */
+			__asm__ __volatile__("lidt %0": :"m" (no_idt));
+			__asm__ __volatile__("int3");
 		}
 	}
 

FUNET's LINUX-ADM group, linux-adm@nic.funet.fi
TCL-scripts by Sam Shen, slshen@lbl.gov