Linux Headquarters
[ Register ]
[ About us ] [ Home Page ]

Advertisement
[ Kernel ] [ Documentation ] [ Links ] [ Books ]

Advertisement

Kernel v2.4.14 /arch/i386/kernel/irq.c

Filename:/arch/i386/kernel/irq.c
Lines Added:4
Lines Deleted:1
Also changed in: (Previous) 2.4.14-pre8  2.4.14-pre7  2.4.14-pre6  2.4.14-pre5  2.4.14-pre4  2.4.14-pre3 
(Following) 2.4.19-pre9-ac3  2.4.19-pre10-ac1  2.4.19-pre10-ac2  2.4.19-rc1-ac2  2.4.19-rc1-ac3  2.4.19-rc1-ac4 

Location
[  2.4.14
  [  arch
    [  i386
      [  kernel
         o  irq.c

Patch

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;


Comments: webmaster (at) linuxhq.com.
Advertising: banners (at) linuxhq.com.
Compilation ©1998-2008 Linux Headquarters, Inc.