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

Next file: linux/arch/i386/kernel/smp.c
Previous file: linux/arch/i386/kernel/irq.c
Back to the patch index
Back to the overall index

diff -u --recursive --new-file v1.3.74/linux/arch/i386/kernel/process.c linux/arch/i386/kernel/process.c
@@ -154,7 +154,14 @@
                 while(0x80000000 & smp_process_available);
 	        cli();
                 while(set_bit(31,&smp_process_available))
-                	while(test_bit(31,&smp_process_available));
+                	while(test_bit(31,&smp_process_available))
+                {
+                	/*
+                	 *	Oops.. This is kind of important in some cases...
+                	 */
+                	if(clear_bit(smp_processor_id(), &smp_invalidate_needed))
+                		local_invalidate();
+                }
                 if (0==(0x7fffffff & smp_process_available)){
                         clear_bit(31,&smp_process_available);
                         sti();

FUNET's LINUX-ADM group, linux-adm@nic.funet.fi
TCL-scripts by Sam Shen, slshen@lbl.gov with Sam's (original) version
of this