summary refs log tree commit diff
diff options
context:
space:
mode:
authorAl Viro <viro@ftp.linux.org.uk>2006-10-08 14:37:32 +0100
committerLinus Torvalds <torvalds@g5.osdl.org>2006-10-08 12:32:35 -0700
commit3dbb8c62897f96bbf5d4e4fe649e5d3791fc33c5 (patch)
treebd5335388a8ae63037d82e98ca529c36290fd2ee
parent7ca56053b29633ef08b14e5ca16c663363edac36 (diff)
downloadlinux-3dbb8c62897f96bbf5d4e4fe649e5d3791fc33c5.tar.gz
[PATCH] alpha pt_regs cleanups: handle_irq()
isa_no_iack_sc_device_interrupt() always gets get_irq_regs() as
argument; kill that argument.

All but two callers of handle_irq() pass get_irq_regs() as argument;
convert the remaining two, kill set_irq_regs() inside handle_irq().

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
-rw-r--r--arch/alpha/kernel/irq.c5
-rw-r--r--arch/alpha/kernel/irq_alpha.c6
-rw-r--r--arch/alpha/kernel/irq_i8259.c6
-rw-r--r--arch/alpha/kernel/irq_impl.h4
-rw-r--r--arch/alpha/kernel/irq_pyxis.c2
-rw-r--r--arch/alpha/kernel/irq_srm.c2
-rw-r--r--arch/alpha/kernel/sys_alcor.c2
-rw-r--r--arch/alpha/kernel/sys_cabriolet.c2
-rw-r--r--arch/alpha/kernel/sys_dp264.c6
-rw-r--r--arch/alpha/kernel/sys_eb64p.c2
-rw-r--r--arch/alpha/kernel/sys_eiger.c10
-rw-r--r--arch/alpha/kernel/sys_jensen.c2
-rw-r--r--arch/alpha/kernel/sys_marvel.c2
-rw-r--r--arch/alpha/kernel/sys_miata.c2
-rw-r--r--arch/alpha/kernel/sys_mikasa.c2
-rw-r--r--arch/alpha/kernel/sys_noritake.c4
-rw-r--r--arch/alpha/kernel/sys_rawhide.c2
-rw-r--r--arch/alpha/kernel/sys_rx164.c4
-rw-r--r--arch/alpha/kernel/sys_sable.c2
-rw-r--r--arch/alpha/kernel/sys_takara.c10
-rw-r--r--arch/alpha/kernel/sys_titan.c2
-rw-r--r--arch/alpha/kernel/sys_wildfire.c2
22 files changed, 40 insertions, 41 deletions
diff --git a/arch/alpha/kernel/irq.c b/arch/alpha/kernel/irq.c
index dba4e70926f5..facf82a5499a 100644
--- a/arch/alpha/kernel/irq.c
+++ b/arch/alpha/kernel/irq.c
@@ -127,9 +127,8 @@ unlock:
 #define MAX_ILLEGAL_IRQS 16
 
 void
-handle_irq(int irq, struct pt_regs * regs)
+handle_irq(int irq)
 {	
-	struct pt_regs *old_regs;
 	/* 
 	 * We ack quickly, we don't want the irq controller
 	 * thinking we're snobs just because some other CPU has
@@ -150,7 +149,6 @@ handle_irq(int irq, struct pt_regs * regs)
 		return;
 	}
 
-	old_regs = set_irq_regs(regs);
 	irq_enter();
 	/*
 	 * __do_IRQ() must be called with IPL_MAX. Note that we do not
@@ -161,5 +159,4 @@ handle_irq(int irq, struct pt_regs * regs)
 	local_irq_disable();
 	__do_IRQ(irq);
 	irq_exit();
-	set_irq_regs(old_regs);
 }
diff --git a/arch/alpha/kernel/irq_alpha.c b/arch/alpha/kernel/irq_alpha.c
index d14cc423aa48..51d66b7f99e3 100644
--- a/arch/alpha/kernel/irq_alpha.c
+++ b/arch/alpha/kernel/irq_alpha.c
@@ -52,6 +52,7 @@ do_entInt(unsigned long type, unsigned long vector,
 #endif
 		break;
 	case 1:
+		old_regs = set_irq_regs(regs);
 #ifdef CONFIG_SMP
 	  {
 		long cpu;
@@ -62,12 +63,13 @@ do_entInt(unsigned long type, unsigned long vector,
 		if (cpu != boot_cpuid) {
 		        kstat_cpu(cpu).irqs[RTC_IRQ]++;
 		} else {
-			handle_irq(RTC_IRQ, regs);
+			handle_irq(RTC_IRQ);
 		}
 	  }
 #else
-		handle_irq(RTC_IRQ, regs);
+		handle_irq(RTC_IRQ);
 #endif
+		set_irq_regs(old_regs);
 		return;
 	case 2:
 		alpha_mv.machine_check(vector, la_ptr, regs);
diff --git a/arch/alpha/kernel/irq_i8259.c b/arch/alpha/kernel/irq_i8259.c
index 6c70f8b97b72..9405bee9894e 100644
--- a/arch/alpha/kernel/irq_i8259.c
+++ b/arch/alpha/kernel/irq_i8259.c
@@ -147,13 +147,13 @@ isa_device_interrupt(unsigned long vector)
 	 */
 	int j = *(vuip) IACK_SC;
 	j &= 0xff;
-	handle_irq(j, get_irq_regs());
+	handle_irq(j);
 }
 #endif
 
 #if defined(CONFIG_ALPHA_GENERIC) || !defined(IACK_SC)
 void
-isa_no_iack_sc_device_interrupt(unsigned long vector, struct pt_regs *regs)
+isa_no_iack_sc_device_interrupt(unsigned long vector)
 {
 	unsigned long pic;
 
@@ -176,7 +176,7 @@ isa_no_iack_sc_device_interrupt(unsigned long vector, struct pt_regs *regs)
 	while (pic) {
 		int j = ffz(~pic);
 		pic &= pic - 1;
-		handle_irq(j, regs);
+		handle_irq(j);
 	}
 }
 #endif
diff --git a/arch/alpha/kernel/irq_impl.h b/arch/alpha/kernel/irq_impl.h
index 5d84dbdcdb89..cc9a8a7aa279 100644
--- a/arch/alpha/kernel/irq_impl.h
+++ b/arch/alpha/kernel/irq_impl.h
@@ -16,7 +16,7 @@
 #define RTC_IRQ    8
 
 extern void isa_device_interrupt(unsigned long);
-extern void isa_no_iack_sc_device_interrupt(unsigned long, struct pt_regs *);
+extern void isa_no_iack_sc_device_interrupt(unsigned long);
 extern void srm_device_interrupt(unsigned long);
 extern void pyxis_device_interrupt(unsigned long);
 
@@ -39,4 +39,4 @@ extern void i8259a_end_irq(unsigned int);
 extern struct hw_interrupt_type i8259a_irq_type;
 extern void init_i8259a_irqs(void);
 
-extern void handle_irq(int irq, struct pt_regs * regs);
+extern void handle_irq(int irq);
diff --git a/arch/alpha/kernel/irq_pyxis.c b/arch/alpha/kernel/irq_pyxis.c
index 686dc22111b2..d53edbccbfe5 100644
--- a/arch/alpha/kernel/irq_pyxis.c
+++ b/arch/alpha/kernel/irq_pyxis.c
@@ -100,7 +100,7 @@ pyxis_device_interrupt(unsigned long vector)
 		if (i == 7)
 			isa_device_interrupt(vector);
 		else
-			handle_irq(16+i, get_irq_regs());
+			handle_irq(16+i);
 	}
 }
 
diff --git a/arch/alpha/kernel/irq_srm.c b/arch/alpha/kernel/irq_srm.c
index 2e9f6d421a8e..32212014fbe9 100644
--- a/arch/alpha/kernel/irq_srm.c
+++ b/arch/alpha/kernel/irq_srm.c
@@ -75,5 +75,5 @@ void
 srm_device_interrupt(unsigned long vector)
 {
 	int irq = (vector - 0x800) >> 4;
-	handle_irq(irq, get_irq_regs());
+	handle_irq(irq);
 }
diff --git a/arch/alpha/kernel/sys_alcor.c b/arch/alpha/kernel/sys_alcor.c
index 2d412c876549..49bedfbbd31b 100644
--- a/arch/alpha/kernel/sys_alcor.c
+++ b/arch/alpha/kernel/sys_alcor.c
@@ -118,7 +118,7 @@ alcor_device_interrupt(unsigned long vector)
 		if (i == 31) {
 			isa_device_interrupt(vector);
 		} else {
-			handle_irq(16 + i, get_irq_regs());
+			handle_irq(16 + i);
 		}
 	}
 }
diff --git a/arch/alpha/kernel/sys_cabriolet.c b/arch/alpha/kernel/sys_cabriolet.c
index e75f0cea6fcc..ace475c124f6 100644
--- a/arch/alpha/kernel/sys_cabriolet.c
+++ b/arch/alpha/kernel/sys_cabriolet.c
@@ -100,7 +100,7 @@ cabriolet_device_interrupt(unsigned long v)
 		if (i == 4) {
 			isa_device_interrupt(v);
 		} else {
-			handle_irq(16 + i, get_irq_regs());
+			handle_irq(16 + i);
 		}
 	}
 }
diff --git a/arch/alpha/kernel/sys_dp264.c b/arch/alpha/kernel/sys_dp264.c
index 57dce0098a1b..85d2f933dd07 100644
--- a/arch/alpha/kernel/sys_dp264.c
+++ b/arch/alpha/kernel/sys_dp264.c
@@ -238,7 +238,7 @@ dp264_device_interrupt(unsigned long vector)
 		if (i == 55)
 			isa_device_interrupt(vector);
 		else
-			handle_irq(16 + i, get_irq_regs());
+			handle_irq(16 + i);
 #if 0
 		TSUNAMI_cchip->dir0.csr = 1UL << i; mb();
 		tmp = TSUNAMI_cchip->dir0.csr;
@@ -268,7 +268,7 @@ dp264_srm_device_interrupt(unsigned long vector)
 	if (irq >= 32)
 		irq -= 16;
 
-	handle_irq(irq, get_irq_regs());
+	handle_irq(irq);
 }
 
 static void 
@@ -290,7 +290,7 @@ clipper_srm_device_interrupt(unsigned long vector)
 	 *
 	 * Eg IRQ 24 is DRIR bit 8, etc, etc
 	 */
-	handle_irq(irq, get_irq_regs());
+	handle_irq(irq);
 }
 
 static void __init
diff --git a/arch/alpha/kernel/sys_eb64p.c b/arch/alpha/kernel/sys_eb64p.c
index 90d27256d7d6..9c5a306dc0ee 100644
--- a/arch/alpha/kernel/sys_eb64p.c
+++ b/arch/alpha/kernel/sys_eb64p.c
@@ -99,7 +99,7 @@ eb64p_device_interrupt(unsigned long vector)
 		if (i == 5) {
 			isa_device_interrupt(vector);
 		} else {
-			handle_irq(16 + i, get_irq_regs());
+			handle_irq(16 + i);
 		}
 	}
 }
diff --git a/arch/alpha/kernel/sys_eiger.c b/arch/alpha/kernel/sys_eiger.c
index f38cded2df97..7ef3b6fb3700 100644
--- a/arch/alpha/kernel/sys_eiger.c
+++ b/arch/alpha/kernel/sys_eiger.c
@@ -118,10 +118,10 @@ eiger_device_interrupt(unsigned long vector)
 		 * despatch an interrupt if it's set.
 		 */
 
-		if (intstatus & 8) handle_irq(16+3, get_irq_regs());
-		if (intstatus & 4) handle_irq(16+2, get_irq_regs());
-		if (intstatus & 2) handle_irq(16+1, get_irq_regs());
-		if (intstatus & 1) handle_irq(16+0, get_irq_regs());
+		if (intstatus & 8) handle_irq(16+3);
+		if (intstatus & 4) handle_irq(16+2);
+		if (intstatus & 2) handle_irq(16+1);
+		if (intstatus & 1) handle_irq(16+0);
 	} else {
 		isa_device_interrupt(vector);
 	}
@@ -131,7 +131,7 @@ static void
 eiger_srm_device_interrupt(unsigned long vector)
 {
 	int irq = (vector - 0x800) >> 4;
-	handle_irq(irq, get_irq_regs());
+	handle_irq(irq);
 }
 
 static void __init
diff --git a/arch/alpha/kernel/sys_jensen.c b/arch/alpha/kernel/sys_jensen.c
index fc316369f4d4..a7b89022938e 100644
--- a/arch/alpha/kernel/sys_jensen.c
+++ b/arch/alpha/kernel/sys_jensen.c
@@ -198,7 +198,7 @@ jensen_device_interrupt(unsigned long vector)
         }
 #endif
 
-	handle_irq(irq, get_irq_regs());
+	handle_irq(irq);
 }
 
 static void __init
diff --git a/arch/alpha/kernel/sys_marvel.c b/arch/alpha/kernel/sys_marvel.c
index 4ea5615be43a..e349f03b830e 100644
--- a/arch/alpha/kernel/sys_marvel.c
+++ b/arch/alpha/kernel/sys_marvel.c
@@ -64,7 +64,7 @@ io7_device_interrupt(unsigned long vector)
 	irq &= MARVEL_IRQ_VEC_IRQ_MASK;		/* not too many bits */
 	irq |= pid << MARVEL_IRQ_VEC_PE_SHIFT;	/* merge the pid     */
 
-	handle_irq(irq, get_irq_regs());
+	handle_irq(irq);
 }
 
 static volatile unsigned long *
diff --git a/arch/alpha/kernel/sys_miata.c b/arch/alpha/kernel/sys_miata.c
index fbbd95212a96..b8b817feb1ee 100644
--- a/arch/alpha/kernel/sys_miata.c
+++ b/arch/alpha/kernel/sys_miata.c
@@ -56,7 +56,7 @@ miata_srm_device_interrupt(unsigned long vector)
 	if (irq >= 16)
 		irq = irq + 8;
 
-	handle_irq(irq, get_irq_regs());
+	handle_irq(irq);
 }
 
 static void __init
diff --git a/arch/alpha/kernel/sys_mikasa.c b/arch/alpha/kernel/sys_mikasa.c
index 5429ba0e08f1..ba98048d61a8 100644
--- a/arch/alpha/kernel/sys_mikasa.c
+++ b/arch/alpha/kernel/sys_mikasa.c
@@ -99,7 +99,7 @@ mikasa_device_interrupt(unsigned long vector)
 		if (i < 16) {
 			isa_device_interrupt(vector);
 		} else {
-			handle_irq(i, get_irq_regs());
+			handle_irq(i);
 		}
 	}
 }
diff --git a/arch/alpha/kernel/sys_noritake.c b/arch/alpha/kernel/sys_noritake.c
index b9a843447b89..679836205f04 100644
--- a/arch/alpha/kernel/sys_noritake.c
+++ b/arch/alpha/kernel/sys_noritake.c
@@ -98,7 +98,7 @@ noritake_device_interrupt(unsigned long vector)
 		if (i < 16) {
 			isa_device_interrupt(vector);
 		} else {
-			handle_irq(i, get_irq_regs());
+			handle_irq(i);
 		}
 	}
 }
@@ -122,7 +122,7 @@ noritake_srm_device_interrupt(unsigned long vector)
 	if (irq >= 16)
 		irq = irq + 1;
 
-	handle_irq(irq, get_irq_regs());
+	handle_irq(irq);
 }
 
 static void __init
diff --git a/arch/alpha/kernel/sys_rawhide.c b/arch/alpha/kernel/sys_rawhide.c
index bef65162bfab..581d08c70b92 100644
--- a/arch/alpha/kernel/sys_rawhide.c
+++ b/arch/alpha/kernel/sys_rawhide.c
@@ -158,7 +158,7 @@ rawhide_srm_device_interrupt(unsigned long vector)
 	/* Adjust by which hose it is from.  */
 	irq -= ((irq + 16) >> 2) & 0x38;
 
-	handle_irq(irq, get_irq_regs());
+	handle_irq(irq);
 }
 
 static void __init
diff --git a/arch/alpha/kernel/sys_rx164.c b/arch/alpha/kernel/sys_rx164.c
index fa8eef8dd8c6..ce1faa6f1df1 100644
--- a/arch/alpha/kernel/sys_rx164.c
+++ b/arch/alpha/kernel/sys_rx164.c
@@ -102,9 +102,9 @@ rx164_device_interrupt(unsigned long vector)
 		i = ffz(~pld);
 		pld &= pld - 1; /* clear least bit set */
 		if (i == 20) {
-			isa_no_iack_sc_device_interrupt(vector, get_irq_regs());
+			isa_no_iack_sc_device_interrupt(vector);
 		} else {
-			handle_irq(16+i, get_irq_regs());
+			handle_irq(16+i);
 		}
 	}
 }
diff --git a/arch/alpha/kernel/sys_sable.c b/arch/alpha/kernel/sys_sable.c
index 791379101e7c..906019cfa681 100644
--- a/arch/alpha/kernel/sys_sable.c
+++ b/arch/alpha/kernel/sys_sable.c
@@ -526,7 +526,7 @@ sable_lynx_srm_device_interrupt(unsigned long vector)
 	printk("%s: vector 0x%lx bit 0x%x irq 0x%x\n",
 	       __FUNCTION__, vector, bit, irq);
 #endif
-	handle_irq(irq, get_irq_regs());
+	handle_irq(irq);
 }
 
 static void __init
diff --git a/arch/alpha/kernel/sys_takara.c b/arch/alpha/kernel/sys_takara.c
index ce2d3b081dc8..9bd9a31450c6 100644
--- a/arch/alpha/kernel/sys_takara.c
+++ b/arch/alpha/kernel/sys_takara.c
@@ -112,10 +112,10 @@ takara_device_interrupt(unsigned long vector)
 		 * despatch an interrupt if it's set.
 		 */
 
-		if (intstatus & 8) handle_irq(16+3, get_irq_regs());
-		if (intstatus & 4) handle_irq(16+2, get_irq_regs());
-		if (intstatus & 2) handle_irq(16+1, get_irq_regs());
-		if (intstatus & 1) handle_irq(16+0, get_irq_regs());
+		if (intstatus & 8) handle_irq(16+3);
+		if (intstatus & 4) handle_irq(16+2);
+		if (intstatus & 2) handle_irq(16+1);
+		if (intstatus & 1) handle_irq(16+0);
 	} else {
 		isa_device_interrupt (vector);
 	}
@@ -125,7 +125,7 @@ static void
 takara_srm_device_interrupt(unsigned long vector)
 {
 	int irq = (vector - 0x800) >> 4;
-	handle_irq(irq, get_irq_regs());
+	handle_irq(irq);
 }
 
 static void __init
diff --git a/arch/alpha/kernel/sys_titan.c b/arch/alpha/kernel/sys_titan.c
index 1473aa0e6982..e8e8ec9c0f4e 100644
--- a/arch/alpha/kernel/sys_titan.c
+++ b/arch/alpha/kernel/sys_titan.c
@@ -178,7 +178,7 @@ titan_srm_device_interrupt(unsigned long vector)
 	int irq;
 
 	irq = (vector - 0x800) >> 4;
-	handle_irq(irq, get_irq_regs());
+	handle_irq(irq);
 }
 
 
diff --git a/arch/alpha/kernel/sys_wildfire.c b/arch/alpha/kernel/sys_wildfire.c
index ddf5edd0cecd..42c3eede4d09 100644
--- a/arch/alpha/kernel/sys_wildfire.c
+++ b/arch/alpha/kernel/sys_wildfire.c
@@ -246,7 +246,7 @@ wildfire_device_interrupt(unsigned long vector)
 	 * bits 5-0:	irq in PCA
 	 */
 
-	handle_irq(irq, get_irq_regs());
+	handle_irq(irq);
 	return;
 }