patch-2.4.14 linux/arch/i386/kernel/irq.c

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

diff -u --recursive --new-file v2.4.13/linux/arch/i386/kernel/irq.c linux/arch/i386/kernel/irq.c
@@ -512,6 +512,7 @@
 	if (!local_irq_count(smp_processor_id())) {
 		do {
 			barrier();
+			cpu_relax();
 		} while (irq_desc[irq].status & IRQ_INPROGRESS);
 	}
 }
@@ -766,8 +767,10 @@
 
 #ifdef CONFIG_SMP
 			/* Wait to make sure it's not being used on another CPU */
-			while (desc->status & IRQ_INPROGRESS)
+			while (desc->status & IRQ_INPROGRESS) {
 				barrier();
+				cpu_relax();
+			}
 #endif
 			kfree(action);
 			return;

FUNET's LINUX-ADM group, linux-adm@nic.funet.fi
TCL-scripts by Sam Shen (who was at: slshen@lbl.gov)