patch-2.4.22 linux-2.4.22/arch/parisc/kernel/irq.c

Next file: linux-2.4.22/arch/parisc/kernel/parisc_ksyms.c
Previous file: linux-2.4.22/arch/parisc/kernel/ioctl32.c
Back to the patch index
Back to the overall index

diff -urN linux-2.4.21/arch/parisc/kernel/irq.c linux-2.4.22/arch/parisc/kernel/irq.c
@@ -57,7 +57,7 @@
 /* Bits in EIEM correlate with cpu_irq_action[].
 ** Numbered *Big Endian*! (ie bit 0 is MSB)
 */
-static unsigned long cpu_eiem = 0;
+static volatile unsigned long cpu_eiem = 0;
 
 static spinlock_t irq_lock = SPIN_LOCK_UNLOCKED;  /* protect IRQ regions */
 
@@ -462,7 +462,7 @@
 
 		for (irq = 0; eirr_val && bit; bit>>=1, irq++)
 		{
-			if (!(bit&eirr_val))
+			if (!(bit&eirr_val&cpu_eiem))
 				continue;
 
 			/* clear bit in mask - can exit loop sooner */

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