diff options
author | Al Viro <viro@ftp.linux.org.uk> | 2006-10-07 09:16:45 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@g5.osdl.org> | 2006-10-07 13:51:14 -0400 |
commit | 2850bc273776cbb1b510c5828e9e456dffb50a32 (patch) | |
tree | 340bd599b6efde40618ef89de59cbe957269eac2 /arch/m68k/sun3 | |
parent | 00079e04fe478cd3c59ae2106ef2fbe779e67024 (diff) |
[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>
Diffstat (limited to 'arch/m68k/sun3')
-rw-r--r-- | arch/m68k/sun3/config.c | 2 | ||||
-rw-r--r-- | arch/m68k/sun3/sun3ints.c | 11 |
2 files changed, 7 insertions, 6 deletions
diff --git a/arch/m68k/sun3/config.c b/arch/m68k/sun3/config.c index d09d03b3d956..db930f9070ef 100644 --- a/arch/m68k/sun3/config.c +++ b/arch/m68k/sun3/config.c | |||
@@ -162,7 +162,7 @@ void __init config_sun3(void) | |||
162 | sun3_bootmem_alloc(memory_start, memory_end); | 162 | sun3_bootmem_alloc(memory_start, memory_end); |
163 | } | 163 | } |
164 | 164 | ||
165 | void __init sun3_sched_init(irqreturn_t (*timer_routine)(int, void *, struct pt_regs *)) | 165 | void __init sun3_sched_init(irqreturn_t (*timer_routine)(int, void *)) |
166 | { | 166 | { |
167 | sun3_disable_interrupts(); | 167 | sun3_disable_interrupts(); |
168 | intersil_clock->cmd_reg=(INTERSIL_RUN|INTERSIL_INT_DISABLE|INTERSIL_24H_MODE); | 168 | intersil_clock->cmd_reg=(INTERSIL_RUN|INTERSIL_INT_DISABLE|INTERSIL_24H_MODE); |
diff --git a/arch/m68k/sun3/sun3ints.c b/arch/m68k/sun3/sun3ints.c index dc4ea7e074a6..baf74e8de8b5 100644 --- a/arch/m68k/sun3/sun3ints.c +++ b/arch/m68k/sun3/sun3ints.c | |||
@@ -15,6 +15,7 @@ | |||
15 | #include <asm/intersil.h> | 15 | #include <asm/intersil.h> |
16 | #include <asm/oplib.h> | 16 | #include <asm/oplib.h> |
17 | #include <asm/sun3ints.h> | 17 | #include <asm/sun3ints.h> |
18 | #include <asm/irq_regs.h> | ||
18 | #include <linux/seq_file.h> | 19 | #include <linux/seq_file.h> |
19 | 20 | ||
20 | extern void sun3_leds (unsigned char); | 21 | extern void sun3_leds (unsigned char); |
@@ -48,7 +49,7 @@ void sun3_disable_irq(unsigned int irq) | |||
48 | *sun3_intreg &= ~(1 << irq); | 49 | *sun3_intreg &= ~(1 << irq); |
49 | } | 50 | } |
50 | 51 | ||
51 | static irqreturn_t sun3_int7(int irq, void *dev_id, struct pt_regs *fp) | 52 | static irqreturn_t sun3_int7(int irq, void *dev_id) |
52 | { | 53 | { |
53 | *sun3_intreg |= (1 << irq); | 54 | *sun3_intreg |= (1 << irq); |
54 | if (!(kstat_cpu(0).irqs[irq] % 2000)) | 55 | if (!(kstat_cpu(0).irqs[irq] % 2000)) |
@@ -56,7 +57,7 @@ static irqreturn_t sun3_int7(int irq, void *dev_id, struct pt_regs *fp) | |||
56 | return IRQ_HANDLED; | 57 | return IRQ_HANDLED; |
57 | } | 58 | } |
58 | 59 | ||
59 | static irqreturn_t sun3_int5(int irq, void *dev_id, struct pt_regs *fp) | 60 | static irqreturn_t sun3_int5(int irq, void *dev_id) |
60 | { | 61 | { |
61 | #ifdef CONFIG_SUN3 | 62 | #ifdef CONFIG_SUN3 |
62 | intersil_clear(); | 63 | intersil_clear(); |
@@ -67,14 +68,14 @@ static irqreturn_t sun3_int5(int irq, void *dev_id, struct pt_regs *fp) | |||
67 | #endif | 68 | #endif |
68 | do_timer(1); | 69 | do_timer(1); |
69 | #ifndef CONFIG_SMP | 70 | #ifndef CONFIG_SMP |
70 | update_process_times(user_mode(fp)); | 71 | update_process_times(user_mode(get_irq_regs())); |
71 | #endif | 72 | #endif |
72 | if (!(kstat_cpu(0).irqs[irq] % 20)) | 73 | if (!(kstat_cpu(0).irqs[irq] % 20)) |
73 | sun3_leds(led_pattern[(kstat_cpu(0).irqs[irq] % 160) / 20]); | 74 | sun3_leds(led_pattern[(kstat_cpu(0).irqs[irq] % 160) / 20]); |
74 | return IRQ_HANDLED; | 75 | return IRQ_HANDLED; |
75 | } | 76 | } |
76 | 77 | ||
77 | static irqreturn_t sun3_vec255(int irq, void *dev_id, struct pt_regs *fp) | 78 | static irqreturn_t sun3_vec255(int irq, void *dev_id) |
78 | { | 79 | { |
79 | // intersil_clear(); | 80 | // intersil_clear(); |
80 | return IRQ_HANDLED; | 81 | return IRQ_HANDLED; |
@@ -84,7 +85,7 @@ static void sun3_inthandle(unsigned int irq, struct pt_regs *fp) | |||
84 | { | 85 | { |
85 | *sun3_intreg &= ~(1 << irq); | 86 | *sun3_intreg &= ~(1 << irq); |
86 | 87 | ||
87 | m68k_handle_int(irq, fp); | 88 | __m68k_handle_int(irq, fp); |
88 | } | 89 | } |
89 | 90 | ||
90 | static struct irq_controller sun3_irq_controller = { | 91 | static struct irq_controller sun3_irq_controller = { |