[PATCH] m68k pt_regs fixes
m68k_handle_int() split in two functions: __m68k_handle_int() takes pt_regs * and does set_irq_regs(); m68k_handle_int() doesn't get pt_regs *. Places where we used to call m68k_handle_int() recursively with the same pt_regs have simply lost the second argument, the rest is switched to __m68k_handle_int(). The rest of patch is just dropping pt_regs * where needed. Signed-off-by: Al Viro <viro@zeniv.linux.org.uk> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
This commit is contained in:
@@ -30,7 +30,7 @@
|
||||
int psc_present;
|
||||
volatile __u8 *psc;
|
||||
|
||||
irqreturn_t psc_irq(int, void *, struct pt_regs *);
|
||||
irqreturn_t psc_irq(int, void *);
|
||||
|
||||
/*
|
||||
* Debugging dump, used in various places to see what's going on.
|
||||
@@ -127,7 +127,7 @@ void __init psc_register_interrupts(void)
|
||||
* PSC interrupt handler. It's a lot like the VIA interrupt handler.
|
||||
*/
|
||||
|
||||
irqreturn_t psc_irq(int irq, void *dev_id, struct pt_regs *regs)
|
||||
irqreturn_t psc_irq(int irq, void *dev_id)
|
||||
{
|
||||
int pIFR = pIFRbase + ((int) dev_id);
|
||||
int pIER = pIERbase + ((int) dev_id);
|
||||
@@ -149,7 +149,7 @@ irqreturn_t psc_irq(int irq, void *dev_id, struct pt_regs *regs)
|
||||
for (i = 0, irq_bit = 1 ; i < 4 ; i++, irq_bit <<= 1) {
|
||||
if (events & irq_bit) {
|
||||
psc_write_byte(pIER, irq_bit);
|
||||
m68k_handle_int(base_irq + i, regs);
|
||||
m68k_handle_int(base_irq + i);
|
||||
psc_write_byte(pIFR, irq_bit);
|
||||
psc_write_byte(pIER, irq_bit | 0x80);
|
||||
}
|
||||
|
Reference in New Issue
Block a user