patch-2.4.0-test6 linux/arch/sparc64/kernel/irq.c
Next file: linux/arch/sparc64/kernel/process.c
Previous file: linux/arch/sparc64/kernel/ioctl32.c
Back to the patch index
Back to the overall index
- Lines: 43
- Date:
Sun Aug 6 11:43:17 2000
- Orig file:
v2.4.0-test5/linux/arch/sparc64/kernel/irq.c
- Orig date:
Mon Jul 10 16:47:20 2000
diff -u --recursive --new-file v2.4.0-test5/linux/arch/sparc64/kernel/irq.c linux/arch/sparc64/kernel/irq.c
@@ -1,4 +1,4 @@
-/* $Id: irq.c,v 1.89 2000/06/30 10:18:38 davem Exp $
+/* $Id: irq.c,v 1.91 2000/08/05 10:48:40 davem Exp $
* irq.c: UltraSparc IRQ handling/init/registry.
*
* Copyright (C) 1997 David S. Miller (davem@caip.rutgers.edu)
@@ -548,13 +548,7 @@
restore_flags(flags);
}
-/* Only uniprocessor needs this IRQ/BH locking depth, on SMP it
- * lives in the brlock table for cache reasons.
- */
-#ifndef CONFIG_SMP
-unsigned int __local_irq_count;
-unsigned int __local_bh_count;
-#else
+#ifdef CONFIG_SMP
/* Who has global_irq_lock. */
unsigned char global_irq_holder = NO_PROC_ID;
@@ -571,7 +565,7 @@
printk("]\nbh: %d [ ",
(spin_is_locked(&global_bh_lock) ? 1 : 0));
for (i = 0; i < smp_num_cpus; i++)
- printk("%u ", cpu_data[i].bh_count);
+ printk("%u ", local_bh_count(i));
printk("]\n");
}
@@ -768,10 +762,12 @@
nbp = __bucket(bp->irq_chain);
if ((flags & IBF_ACTIVE) != 0) {
+#ifdef CONFIG_PCI
if ((flags & IBF_DMA_SYNC) != 0) {
upa_readl(dma_sync_reg_table[bp->synctab_ent]);
upa_readq(pci_dma_wsync);
}
+#endif
if ((flags & IBF_MULTI) == 0) {
struct irqaction *ap = bp->irq_info;
ap->handler(__irq(bp), ap->dev_id, regs);
FUNET's LINUX-ADM group, linux-adm@nic.funet.fi
TCL-scripts by Sam Shen (who was at: slshen@lbl.gov)