patch-2.2.13 linux/arch/i386/kernel/irq.c
Next file: linux/arch/i386/kernel/process.c
Previous file: linux/arch/i386/kernel/io_apic.c
Back to the patch index
Back to the overall index
-  Lines: 23
-  Date:
Tue Oct 19 17:14:00 1999
-  Orig file: 
v2.2.12/linux/arch/i386/kernel/irq.c
-  Orig date: 
Mon Aug  9 16:05:54 1999
diff -u --recursive --new-file v2.2.12/linux/arch/i386/kernel/irq.c linux/arch/i386/kernel/irq.c
@@ -449,6 +449,7 @@
 
 atomic_t global_bh_count;
 atomic_t global_bh_lock;
+spinlock_t i386_bh_lock = SPIN_LOCK_UNLOCKED;
 
 /*
  * "global_cli()" is a special case, in that it can hold the
@@ -726,10 +727,11 @@
 
 	status = 1;	/* Force the "do bottom halves" bit */
 
-	if (!(action->flags & SA_INTERRUPT))
-		__sti();
-
 	do {
+		if (!(action->flags & SA_INTERRUPT))
+			__sti();
+		else
+			__cli();
 		status |= action->flags;
 		action->handler(irq, action->dev_id, regs);
 		action = action->next;
FUNET's LINUX-ADM group, linux-adm@nic.funet.fi
TCL-scripts by Sam Shen (who was at: slshen@lbl.gov)