| Kernel v2.4.14 /arch/i386/kernel/irq.c |
|---|
 2.4.14
 arch
 i386
 kernel
 irq.c
diff -u --recursive --new-file v2.4.13/linux/arch/i386/kernel/irq.c linux/arch/i386/kernel/irq.c
--- v2.4.13/linux/arch/i386/kernel/irq.c Sun Sep 23 11:40:55 2001
+++ linux/arch/i386/kernel/irq.c Thu Oct 25 13:53:46 2001
@@ -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;
|