patch-2.1.24 linux/arch/i386/kernel/smp.c

Next file: linux/drivers/block/floppy.c
Previous file: linux/arch/i386/boot/compressed/misc.c
Back to the patch index
Back to the overall index

diff -u --recursive --new-file v2.1.23/linux/arch/i386/kernel/smp.c linux/arch/i386/kernel/smp.c
@@ -638,11 +638,11 @@
 	load_ldt(0);
 	local_flush_tlb();
 	
-	while(!task[cpuid] || current_set[cpuid] != task[cpuid])
+	while (cpu_number_map[cpuid] == -1)
 		barrier();
 
-	if (cpu_number_map[cpuid] == -1)
-		while(1);
+	while(!task[cpuid] || current_set[cpuid] != task[cpu_number_map[cpuid]])
+		barrier();
 
 	local_flush_tlb();
 	load_TR(cpu_number_map[cpuid]);

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