Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 3dbb8c62 authored by Al Viro's avatar Al Viro Committed by Linus Torvalds
Browse files

[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: default avatarAl Viro <viro@zeniv.linux.org.uk>
Signed-off-by: default avatarLinus Torvalds <torvalds@osdl.org>
parent 7ca56053
Loading
Loading
Loading
Loading
+1 −4
Original line number Diff line number Diff line
@@ -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);
}
+4 −2
Original line number Diff line number Diff line
@@ -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);
+3 −3
Original line number Diff line number Diff line
@@ -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
+2 −2
Original line number Diff line number Diff line
@@ -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);
+1 −1
Original line number Diff line number Diff line
@@ -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);
	}
}

Loading