Update of /cvsroot/linuxsh/linux/arch/sh/cchips/voyagergx
In directory sc8-pr-cvs6.sourceforge.net:/tmp/cvs-serv4439/arch/sh/cchips/voyagergx
Modified Files:
irq.c
Log Message:
More local IRQ purging, due to generic hardirq locking.
Index: irq.c
===================================================================
RCS file: /cvsroot/linuxsh/linux/arch/sh/cchips/voyagergx/irq.c,v
retrieving revision 1.6
retrieving revision 1.7
diff -u -d -r1.6 -r1.7
--- irq.c 18 Jul 2006 13:30:28 -0000 1.6
+++ irq.c 7 Aug 2006 02:22:11 -0000 1.7
@@ -37,32 +37,26 @@
static void disable_voyagergx_irq(unsigned int irq)
{
- unsigned long flags, val;
- unsigned long mask = 1 << (irq - VOYAGER_IRQ_BASE);
+ unsigned long val;
+ unsigned long mask = 1 << (irq - VOYAGER_IRQ_BASE);
pr_debug("disable_voyagergx_irq(%d): mask=%x\n", irq, mask);
- local_irq_save(flags);
val = inl(VOYAGER_INT_MASK);
val &= ~mask;
outl(val, VOYAGER_INT_MASK);
- local_irq_restore(flags);
}
-
static void enable_voyagergx_irq(unsigned int irq)
{
- unsigned long flags, val;
- unsigned long mask = 1 << (irq - VOYAGER_IRQ_BASE);
+ unsigned long val;
+ unsigned long mask = 1 << (irq - VOYAGER_IRQ_BASE);
pr_debug("disable_voyagergx_irq(%d): mask=%x\n", irq, mask);
- local_irq_save(flags);
val = inl(VOYAGER_INT_MASK);
val |= mask;
outl(val, VOYAGER_INT_MASK);
- local_irq_restore(flags);
}
-
static void mask_and_ack_voyagergx(unsigned int irq)
{
disable_voyagergx_irq(irq);
@@ -95,7 +89,8 @@
.end = end_voyagergx_irq,
};
-static irqreturn_t voyagergx_interrupt(int irq, void *dev_id, struct pt_regs *regs)
+static irqreturn_t voyagergx_interrupt(int irq, void *dev_id,
+ struct pt_regs *regs)
{
printk(KERN_INFO
"VoyagerGX: spurious interrupt, status: 0x%x\n",
@@ -103,9 +98,6 @@
return IRQ_HANDLED;
}
-
-/*====================================================*/
-
static struct {
int (*func)(int, void *);
void *dev;
|