Commit 2850bc273776cbb1b510c5828e9e456dffb50a32
Committed by
Linus Torvalds
1 parent
00079e04fe
Exists in
master
and in
7 other branches
[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>
Showing 44 changed files with 176 additions and 169 deletions Side-by-side Diff
- arch/m68k/amiga/amiints.c
- arch/m68k/amiga/cia.c
- arch/m68k/amiga/config.c
- arch/m68k/apollo/config.c
- arch/m68k/apollo/dn_ints.c
- arch/m68k/atari/config.c
- arch/m68k/atari/stdma.c
- arch/m68k/atari/time.c
- arch/m68k/bvme6000/config.c
- arch/m68k/hp300/time.c
- arch/m68k/hp300/time.h
- arch/m68k/kernel/entry.S
- arch/m68k/kernel/ints.c
- arch/m68k/kernel/setup.c
- arch/m68k/kernel/time.c
- arch/m68k/mac/baboon.c
- arch/m68k/mac/config.c
- arch/m68k/mac/iop.c
- arch/m68k/mac/macints.c
- arch/m68k/mac/oss.c
- arch/m68k/mac/psc.c
- arch/m68k/mac/via.c
- arch/m68k/mvme147/config.c
- arch/m68k/mvme16x/config.c
- arch/m68k/q40/config.c
- arch/m68k/q40/q40ints.c
- arch/m68k/sun3/config.c
- arch/m68k/sun3/sun3ints.c
- arch/m68k/sun3x/time.c
- arch/m68k/sun3x/time.h
- drivers/char/vme_scc.c
- drivers/macintosh/adb-iop.c
- drivers/macintosh/via-macii.c
- drivers/macintosh/via-maciisi.c
- drivers/macintosh/via-pmu68k.c
- drivers/net/7990.c
- drivers/parport/parport_mfc3.c
- include/asm-m68k/atari_stdma.h
- include/asm-m68k/floppy.h
- include/asm-m68k/ide.h
- include/asm-m68k/irq.h
- include/asm-m68k/mac_iop.h
- include/asm-m68k/machdep.h
- include/asm-m68k/sun3xflop.h
arch/m68k/amiga/amiints.c
... | ... | @@ -47,10 +47,10 @@ |
47 | 47 | |
48 | 48 | static void amiga_enable_irq(unsigned int irq); |
49 | 49 | static void amiga_disable_irq(unsigned int irq); |
50 | -static irqreturn_t ami_int1(int irq, void *dev_id, struct pt_regs *fp); | |
51 | -static irqreturn_t ami_int3(int irq, void *dev_id, struct pt_regs *fp); | |
52 | -static irqreturn_t ami_int4(int irq, void *dev_id, struct pt_regs *fp); | |
53 | -static irqreturn_t ami_int5(int irq, void *dev_id, struct pt_regs *fp); | |
50 | +static irqreturn_t ami_int1(int irq, void *dev_id); | |
51 | +static irqreturn_t ami_int3(int irq, void *dev_id); | |
52 | +static irqreturn_t ami_int4(int irq, void *dev_id); | |
53 | +static irqreturn_t ami_int5(int irq, void *dev_id); | |
54 | 54 | |
55 | 55 | static struct irq_controller amiga_irq_controller = { |
56 | 56 | .name = "amiga", |
57 | 57 | |
58 | 58 | |
59 | 59 | |
60 | 60 | |
61 | 61 | |
62 | 62 | |
63 | 63 | |
64 | 64 | |
65 | 65 | |
66 | 66 | |
67 | 67 | |
68 | 68 | |
69 | 69 | |
70 | 70 | |
71 | 71 | |
... | ... | @@ -113,98 +113,98 @@ |
113 | 113 | * The builtin Amiga hardware interrupt handlers. |
114 | 114 | */ |
115 | 115 | |
116 | -static irqreturn_t ami_int1(int irq, void *dev_id, struct pt_regs *fp) | |
116 | +static irqreturn_t ami_int1(int irq, void *dev_id) | |
117 | 117 | { |
118 | 118 | unsigned short ints = amiga_custom.intreqr & amiga_custom.intenar; |
119 | 119 | |
120 | 120 | /* if serial transmit buffer empty, interrupt */ |
121 | 121 | if (ints & IF_TBE) { |
122 | 122 | amiga_custom.intreq = IF_TBE; |
123 | - m68k_handle_int(IRQ_AMIGA_TBE, fp); | |
123 | + m68k_handle_int(IRQ_AMIGA_TBE); | |
124 | 124 | } |
125 | 125 | |
126 | 126 | /* if floppy disk transfer complete, interrupt */ |
127 | 127 | if (ints & IF_DSKBLK) { |
128 | 128 | amiga_custom.intreq = IF_DSKBLK; |
129 | - m68k_handle_int(IRQ_AMIGA_DSKBLK, fp); | |
129 | + m68k_handle_int(IRQ_AMIGA_DSKBLK); | |
130 | 130 | } |
131 | 131 | |
132 | 132 | /* if software interrupt set, interrupt */ |
133 | 133 | if (ints & IF_SOFT) { |
134 | 134 | amiga_custom.intreq = IF_SOFT; |
135 | - m68k_handle_int(IRQ_AMIGA_SOFT, fp); | |
135 | + m68k_handle_int(IRQ_AMIGA_SOFT); | |
136 | 136 | } |
137 | 137 | return IRQ_HANDLED; |
138 | 138 | } |
139 | 139 | |
140 | -static irqreturn_t ami_int3(int irq, void *dev_id, struct pt_regs *fp) | |
140 | +static irqreturn_t ami_int3(int irq, void *dev_id) | |
141 | 141 | { |
142 | 142 | unsigned short ints = amiga_custom.intreqr & amiga_custom.intenar; |
143 | 143 | |
144 | 144 | /* if a blitter interrupt */ |
145 | 145 | if (ints & IF_BLIT) { |
146 | 146 | amiga_custom.intreq = IF_BLIT; |
147 | - m68k_handle_int(IRQ_AMIGA_BLIT, fp); | |
147 | + m68k_handle_int(IRQ_AMIGA_BLIT); | |
148 | 148 | } |
149 | 149 | |
150 | 150 | /* if a copper interrupt */ |
151 | 151 | if (ints & IF_COPER) { |
152 | 152 | amiga_custom.intreq = IF_COPER; |
153 | - m68k_handle_int(IRQ_AMIGA_COPPER, fp); | |
153 | + m68k_handle_int(IRQ_AMIGA_COPPER); | |
154 | 154 | } |
155 | 155 | |
156 | 156 | /* if a vertical blank interrupt */ |
157 | 157 | if (ints & IF_VERTB) { |
158 | 158 | amiga_custom.intreq = IF_VERTB; |
159 | - m68k_handle_int(IRQ_AMIGA_VERTB, fp); | |
159 | + m68k_handle_int(IRQ_AMIGA_VERTB); | |
160 | 160 | } |
161 | 161 | return IRQ_HANDLED; |
162 | 162 | } |
163 | 163 | |
164 | -static irqreturn_t ami_int4(int irq, void *dev_id, struct pt_regs *fp) | |
164 | +static irqreturn_t ami_int4(int irq, void *dev_id) | |
165 | 165 | { |
166 | 166 | unsigned short ints = amiga_custom.intreqr & amiga_custom.intenar; |
167 | 167 | |
168 | 168 | /* if audio 0 interrupt */ |
169 | 169 | if (ints & IF_AUD0) { |
170 | 170 | amiga_custom.intreq = IF_AUD0; |
171 | - m68k_handle_int(IRQ_AMIGA_AUD0, fp); | |
171 | + m68k_handle_int(IRQ_AMIGA_AUD0); | |
172 | 172 | } |
173 | 173 | |
174 | 174 | /* if audio 1 interrupt */ |
175 | 175 | if (ints & IF_AUD1) { |
176 | 176 | amiga_custom.intreq = IF_AUD1; |
177 | - m68k_handle_int(IRQ_AMIGA_AUD1, fp); | |
177 | + m68k_handle_int(IRQ_AMIGA_AUD1); | |
178 | 178 | } |
179 | 179 | |
180 | 180 | /* if audio 2 interrupt */ |
181 | 181 | if (ints & IF_AUD2) { |
182 | 182 | amiga_custom.intreq = IF_AUD2; |
183 | - m68k_handle_int(IRQ_AMIGA_AUD2, fp); | |
183 | + m68k_handle_int(IRQ_AMIGA_AUD2); | |
184 | 184 | } |
185 | 185 | |
186 | 186 | /* if audio 3 interrupt */ |
187 | 187 | if (ints & IF_AUD3) { |
188 | 188 | amiga_custom.intreq = IF_AUD3; |
189 | - m68k_handle_int(IRQ_AMIGA_AUD3, fp); | |
189 | + m68k_handle_int(IRQ_AMIGA_AUD3); | |
190 | 190 | } |
191 | 191 | return IRQ_HANDLED; |
192 | 192 | } |
193 | 193 | |
194 | -static irqreturn_t ami_int5(int irq, void *dev_id, struct pt_regs *fp) | |
194 | +static irqreturn_t ami_int5(int irq, void *dev_id) | |
195 | 195 | { |
196 | 196 | unsigned short ints = amiga_custom.intreqr & amiga_custom.intenar; |
197 | 197 | |
198 | 198 | /* if serial receive buffer full interrupt */ |
199 | 199 | if (ints & IF_RBF) { |
200 | 200 | /* acknowledge of IF_RBF must be done by the serial interrupt */ |
201 | - m68k_handle_int(IRQ_AMIGA_RBF, fp); | |
201 | + m68k_handle_int(IRQ_AMIGA_RBF); | |
202 | 202 | } |
203 | 203 | |
204 | 204 | /* if a disk sync interrupt */ |
205 | 205 | if (ints & IF_DSKSYN) { |
206 | 206 | amiga_custom.intreq = IF_DSKSYN; |
207 | - m68k_handle_int(IRQ_AMIGA_DSKSYN, fp); | |
207 | + m68k_handle_int(IRQ_AMIGA_DSKSYN); | |
208 | 208 | } |
209 | 209 | return IRQ_HANDLED; |
210 | 210 | } |
arch/m68k/amiga/cia.c
... | ... | @@ -82,7 +82,7 @@ |
82 | 82 | return old; |
83 | 83 | } |
84 | 84 | |
85 | -static irqreturn_t cia_handler(int irq, void *dev_id, struct pt_regs *fp) | |
85 | +static irqreturn_t cia_handler(int irq, void *dev_id) | |
86 | 86 | { |
87 | 87 | struct ciabase *base = (struct ciabase *)dev_id; |
88 | 88 | int mach_irq; |
... | ... | @@ -93,7 +93,7 @@ |
93 | 93 | amiga_custom.intreq = base->int_mask; |
94 | 94 | for (; ints; mach_irq++, ints >>= 1) { |
95 | 95 | if (ints & 1) |
96 | - m68k_handle_int(mach_irq, fp); | |
96 | + m68k_handle_int(mach_irq); | |
97 | 97 | } |
98 | 98 | return IRQ_HANDLED; |
99 | 99 | } |
arch/m68k/amiga/config.c
... | ... | @@ -83,7 +83,7 @@ |
83 | 83 | |
84 | 84 | extern char m68k_debug_device[]; |
85 | 85 | |
86 | -static void amiga_sched_init(irqreturn_t (*handler)(int, void *, struct pt_regs *)); | |
86 | +static void amiga_sched_init(irqreturn_t (*handler)(int, void *)); | |
87 | 87 | /* amiga specific irq functions */ |
88 | 88 | extern void amiga_init_IRQ (void); |
89 | 89 | static void amiga_get_model(char *model); |
... | ... | @@ -487,8 +487,7 @@ |
487 | 487 | |
488 | 488 | static unsigned short jiffy_ticks; |
489 | 489 | |
490 | -static void __init amiga_sched_init(irqreturn_t (*timer_routine)(int, void *, | |
491 | - struct pt_regs *)) | |
490 | +static void __init amiga_sched_init(irqreturn_t (*timer_routine)(int, void *)) | |
492 | 491 | { |
493 | 492 | static struct resource sched_res = { |
494 | 493 | .name = "timer", .start = 0x00bfd400, .end = 0x00bfd5ff, |
arch/m68k/apollo/config.c
... | ... | @@ -25,7 +25,7 @@ |
25 | 25 | u_long timer_physaddr; |
26 | 26 | u_long apollo_model; |
27 | 27 | |
28 | -extern void dn_sched_init(irqreturn_t (*handler)(int,void *,struct pt_regs *)); | |
28 | +extern void dn_sched_init(irqreturn_t (*handler)(int,void *)); | |
29 | 29 | extern void dn_init_IRQ(void); |
30 | 30 | extern unsigned long dn_gettimeoffset(void); |
31 | 31 | extern int dn_dummy_hwclk(int, struct rtc_time *); |
... | ... | @@ -38,7 +38,7 @@ |
38 | 38 | #ifdef CONFIG_HEARTBEAT |
39 | 39 | static void dn_heartbeat(int on); |
40 | 40 | #endif |
41 | -static irqreturn_t dn_timer_int(int irq,void *, struct pt_regs *); | |
41 | +static irqreturn_t dn_timer_int(int irq,void *); | |
42 | 42 | static void dn_get_model(char *model); |
43 | 43 | static const char *apollo_models[] = { |
44 | 44 | [APOLLO_DN3000-APOLLO_DN3000] = "DN3000 (Otter)", |
45 | 45 | |
46 | 46 | |
... | ... | @@ -174,13 +174,13 @@ |
174 | 174 | |
175 | 175 | } |
176 | 176 | |
177 | -irqreturn_t dn_timer_int(int irq, void *dev_id, struct pt_regs *fp) | |
177 | +irqreturn_t dn_timer_int(int irq, void *dev_id) | |
178 | 178 | { |
179 | - irqreturn_t (*timer_handler)(int, void *, struct pt_regs *) = dev_id; | |
179 | + irqreturn_t (*timer_handler)(int, void *) = dev_id; | |
180 | 180 | |
181 | 181 | volatile unsigned char x; |
182 | 182 | |
183 | - timer_handler(irq, dev_id, fp); | |
183 | + timer_handler(irq, dev_id); | |
184 | 184 | |
185 | 185 | x=*(volatile unsigned char *)(timer+3); |
186 | 186 | x=*(volatile unsigned char *)(timer+5); |
... | ... | @@ -188,8 +188,8 @@ |
188 | 188 | return IRQ_HANDLED; |
189 | 189 | } |
190 | 190 | |
191 | -void dn_sched_init(irqreturn_t (*timer_routine)(int, void *, struct pt_regs *)) { | |
192 | - | |
191 | +void dn_sched_init(irqreturn_t (*timer_routine)(int, void *)) | |
192 | +{ | |
193 | 193 | /* program timer 1 */ |
194 | 194 | *(volatile unsigned char *)(timer+3)=0x01; |
195 | 195 | *(volatile unsigned char *)(timer+1)=0x40; |
arch/m68k/apollo/dn_ints.c
arch/m68k/atari/config.c
... | ... | @@ -62,7 +62,7 @@ |
62 | 62 | #endif |
63 | 63 | |
64 | 64 | /* atari specific timer functions (in time.c) */ |
65 | -extern void atari_sched_init(irqreturn_t (*)(int, void *, struct pt_regs *)); | |
65 | +extern void atari_sched_init(irqreturn_t (*)(int, void *)); | |
66 | 66 | extern unsigned long atari_gettimeoffset (void); |
67 | 67 | extern int atari_mste_hwclk (int, struct rtc_time *); |
68 | 68 | extern int atari_tt_hwclk (int, struct rtc_time *); |
arch/m68k/atari/stdma.c
... | ... | @@ -44,7 +44,7 @@ |
44 | 44 | |
45 | 45 | static int stdma_locked; /* the semaphore */ |
46 | 46 | /* int func to be called */ |
47 | -static irqreturn_t (*stdma_isr)(int, void *, struct pt_regs *); | |
47 | +static irqreturn_t (*stdma_isr)(int, void *); | |
48 | 48 | static void *stdma_isr_data; /* data passed to isr */ |
49 | 49 | static DECLARE_WAIT_QUEUE_HEAD(stdma_wait); /* wait queue for ST-DMA */ |
50 | 50 | |
... | ... | @@ -53,7 +53,7 @@ |
53 | 53 | |
54 | 54 | /***************************** Prototypes *****************************/ |
55 | 55 | |
56 | -static irqreturn_t stdma_int (int irq, void *dummy, struct pt_regs *fp); | |
56 | +static irqreturn_t stdma_int (int irq, void *dummy); | |
57 | 57 | |
58 | 58 | /************************* End of Prototypes **************************/ |
59 | 59 | |
... | ... | @@ -75,8 +75,7 @@ |
75 | 75 | * |
76 | 76 | */ |
77 | 77 | |
78 | -void stdma_lock(irqreturn_t (*handler)(int, void *, struct pt_regs *), | |
79 | - void *data) | |
78 | +void stdma_lock(irqreturn_t (*handler)(int, void *), void *data) | |
80 | 79 | { |
81 | 80 | unsigned long flags; |
82 | 81 | |
83 | 82 | |
... | ... | @@ -188,10 +187,10 @@ |
188 | 187 | * |
189 | 188 | */ |
190 | 189 | |
191 | -static irqreturn_t stdma_int(int irq, void *dummy, struct pt_regs *fp) | |
190 | +static irqreturn_t stdma_int(int irq, void *dummy) | |
192 | 191 | { |
193 | 192 | if (stdma_isr) |
194 | - (*stdma_isr)(irq, stdma_isr_data, fp); | |
193 | + (*stdma_isr)(irq, stdma_isr_data); | |
195 | 194 | return IRQ_HANDLED; |
196 | 195 | } |
arch/m68k/atari/time.c
... | ... | @@ -20,7 +20,7 @@ |
20 | 20 | #include <asm/atariints.h> |
21 | 21 | |
22 | 22 | void __init |
23 | -atari_sched_init(irqreturn_t (*timer_routine)(int, void *, struct pt_regs *)) | |
23 | +atari_sched_init(irqreturn_t (*timer_routine)(int, void *)) | |
24 | 24 | { |
25 | 25 | /* set Timer C data Register */ |
26 | 26 | mfp.tim_dt_c = INT_TICKS; |
arch/m68k/bvme6000/config.c
... | ... | @@ -38,7 +38,7 @@ |
38 | 38 | |
39 | 39 | static void bvme6000_get_model(char *model); |
40 | 40 | static int bvme6000_get_hardware_list(char *buffer); |
41 | -extern void bvme6000_sched_init(irqreturn_t (*handler)(int, void *, struct pt_regs *)); | |
41 | +extern void bvme6000_sched_init(irqreturn_t (*handler)(int, void *)); | |
42 | 42 | extern unsigned long bvme6000_gettimeoffset (void); |
43 | 43 | extern int bvme6000_hwclk (int, struct rtc_time *); |
44 | 44 | extern int bvme6000_set_clock_mmss (unsigned long); |
... | ... | @@ -52,7 +52,7 @@ |
52 | 52 | /* Save tick handler routine pointer, will point to do_timer() in |
53 | 53 | * kernel/sched.c, called via bvme6000_process_int() */ |
54 | 54 | |
55 | -static irqreturn_t (*tick_handler)(int, void *, struct pt_regs *); | |
55 | +static irqreturn_t (*tick_handler)(int, void *); | |
56 | 56 | |
57 | 57 | |
58 | 58 | int bvme6000_parse_bootinfo(const struct bi_record *bi) |
... | ... | @@ -154,7 +154,7 @@ |
154 | 154 | } |
155 | 155 | |
156 | 156 | |
157 | -irqreturn_t bvme6000_abort_int (int irq, void *dev_id, struct pt_regs *fp) | |
157 | +irqreturn_t bvme6000_abort_int (int irq, void *dev_id) | |
158 | 158 | { |
159 | 159 | unsigned long *new = (unsigned long *)vectors; |
160 | 160 | unsigned long *old = (unsigned long *)0xf8000000; |
161 | 161 | |
... | ... | @@ -171,14 +171,14 @@ |
171 | 171 | } |
172 | 172 | |
173 | 173 | |
174 | -static irqreturn_t bvme6000_timer_int (int irq, void *dev_id, struct pt_regs *fp) | |
174 | +static irqreturn_t bvme6000_timer_int (int irq, void *dev_id) | |
175 | 175 | { |
176 | 176 | volatile RtcPtr_t rtc = (RtcPtr_t)BVME_RTC_BASE; |
177 | 177 | unsigned char msr = rtc->msr & 0xc0; |
178 | 178 | |
179 | 179 | rtc->msr = msr | 0x20; /* Ack the interrupt */ |
180 | 180 | |
181 | - return tick_handler(irq, dev_id, fp); | |
181 | + return tick_handler(irq, dev_id); | |
182 | 182 | } |
183 | 183 | |
184 | 184 | /* |
... | ... | @@ -190,7 +190,7 @@ |
190 | 190 | * so divide by 8 to get the microsecond result. |
191 | 191 | */ |
192 | 192 | |
193 | -void bvme6000_sched_init (irqreturn_t (*timer_routine)(int, void *, struct pt_regs *)) | |
193 | +void bvme6000_sched_init (irqreturn_t (*timer_routine)(int, void *)) | |
194 | 194 | { |
195 | 195 | volatile RtcPtr_t rtc = (RtcPtr_t)BVME_RTC_BASE; |
196 | 196 | unsigned char msr = rtc->msr & 0xc0; |
arch/m68k/hp300/time.c
... | ... | @@ -36,15 +36,15 @@ |
36 | 36 | |
37 | 37 | #define INTVAL ((10000 / 4) - 1) |
38 | 38 | |
39 | -static irqreturn_t hp300_tick(int irq, void *dev_id, struct pt_regs *regs) | |
39 | +static irqreturn_t hp300_tick(int irq, void *dev_id) | |
40 | 40 | { |
41 | 41 | unsigned long tmp; |
42 | - irqreturn_t (*vector)(int, void *, struct pt_regs *) = dev_id; | |
42 | + irqreturn_t (*vector)(int, void *) = dev_id; | |
43 | 43 | in_8(CLOCKBASE + CLKSR); |
44 | 44 | asm volatile ("movpw %1@(5),%0" : "=d" (tmp) : "a" (CLOCKBASE)); |
45 | 45 | /* Turn off the network and SCSI leds */ |
46 | 46 | blinken_leds(0, 0xe0); |
47 | - return vector(irq, NULL, regs); | |
47 | + return vector(irq, NULL); | |
48 | 48 | } |
49 | 49 | |
50 | 50 | unsigned long hp300_gettimeoffset(void) |
... | ... | @@ -63,7 +63,7 @@ |
63 | 63 | return (USECS_PER_JIFFY * ticks) / INTVAL; |
64 | 64 | } |
65 | 65 | |
66 | -void __init hp300_sched_init(irqreturn_t (*vector)(int, void *, struct pt_regs *)) | |
66 | +void __init hp300_sched_init(irqreturn_t (*vector)(int, void *)) | |
67 | 67 | { |
68 | 68 | out_8(CLOCKBASE + CLKCR2, 0x1); /* select CR1 */ |
69 | 69 | out_8(CLOCKBASE + CLKCR1, 0x1); /* reset */ |
arch/m68k/hp300/time.h
arch/m68k/kernel/entry.S
... | ... | @@ -205,7 +205,7 @@ |
205 | 205 | movel %sp,%sp@- |
206 | 206 | movel %d0,%sp@- | put vector # on stack |
207 | 207 | auto_irqhandler_fixup = . + 2 |
208 | - jsr m68k_handle_int | process the IRQ | |
208 | + jsr __m68k_handle_int | process the IRQ | |
209 | 209 | addql #8,%sp | pop parameters off stack |
210 | 210 | |
211 | 211 | ret_from_interrupt: |
... | ... | @@ -239,7 +239,7 @@ |
239 | 239 | movel %sp,%sp@- |
240 | 240 | movel %d0,%sp@- | put vector # on stack |
241 | 241 | user_irqhandler_fixup = . + 2 |
242 | - jsr m68k_handle_int | process the IRQ | |
242 | + jsr __m68k_handle_int | process the IRQ | |
243 | 243 | addql #8,%sp | pop parameters off stack |
244 | 244 | |
245 | 245 | subqb #1,%curptr@(TASK_INFO+TINFO_PREEMPT+1) |
arch/m68k/kernel/ints.c
... | ... | @@ -39,6 +39,7 @@ |
39 | 39 | #include <asm/page.h> |
40 | 40 | #include <asm/machdep.h> |
41 | 41 | #include <asm/cacheflush.h> |
42 | +#include <asm/irq_regs.h> | |
42 | 43 | |
43 | 44 | #ifdef CONFIG_Q40 |
44 | 45 | #include <asm/q40ints.h> |
... | ... | @@ -104,7 +105,7 @@ |
104 | 105 | * @handler: called from auto vector interrupts |
105 | 106 | * |
106 | 107 | * setup the handler to be called from auto vector interrupts instead of the |
107 | - * standard m68k_handle_int(), it will be called with irq numbers in the range | |
108 | + * standard __m68k_handle_int(), it will be called with irq numbers in the range | |
108 | 109 | * from IRQ_AUTO_1 - IRQ_AUTO_7. |
109 | 110 | */ |
110 | 111 | void __init m68k_setup_auto_interrupt(void (*handler)(unsigned int, struct pt_regs *)) |
... | ... | @@ -123,7 +124,7 @@ |
123 | 124 | * setup user vector interrupts, this includes activating the specified range |
124 | 125 | * of interrupts, only then these interrupts can be requested (note: this is |
125 | 126 | * different from auto vector interrupts). An optional handler can be installed |
126 | - * to be called instead of the default m68k_handle_int(), it will be called | |
127 | + * to be called instead of the default __m68k_handle_int(), it will be called | |
127 | 128 | * with irq numbers starting from IRQ_USER. |
128 | 129 | */ |
129 | 130 | void __init m68k_setup_user_interrupt(unsigned int vec, unsigned int cnt, |
... | ... | @@ -215,7 +216,7 @@ |
215 | 216 | } |
216 | 217 | |
217 | 218 | int request_irq(unsigned int irq, |
218 | - irqreturn_t (*handler) (int, void *, struct pt_regs *), | |
219 | + irqreturn_t (*handler) (int, void *), | |
219 | 220 | unsigned long flags, const char *devname, void *dev_id) |
220 | 221 | { |
221 | 222 | struct irq_node *node; |
222 | 223 | |
223 | 224 | |
224 | 225 | |
... | ... | @@ -379,16 +380,23 @@ |
379 | 380 | |
380 | 381 | EXPORT_SYMBOL(irq_canonicalize); |
381 | 382 | |
382 | -asmlinkage void m68k_handle_int(unsigned int irq, struct pt_regs *regs) | |
383 | +asmlinkage void m68k_handle_int(unsigned int irq) | |
383 | 384 | { |
384 | 385 | struct irq_node *node; |
385 | - | |
386 | 386 | kstat_cpu(0).irqs[irq]++; |
387 | 387 | node = irq_list[irq]; |
388 | 388 | do { |
389 | - node->handler(irq, node->dev_id, regs); | |
389 | + node->handler(irq, node->dev_id); | |
390 | 390 | node = node->next; |
391 | 391 | } while (node); |
392 | +} | |
393 | + | |
394 | +asmlinkage void __m68k_handle_int(unsigned int irq, struct pt_regs *regs) | |
395 | +{ | |
396 | + struct pt_regs *old_regs; | |
397 | + old_regs = set_irq_regs(regs); | |
398 | + m68k_handle_int(irq); | |
399 | + set_irq_regs(old_regs); | |
392 | 400 | } |
393 | 401 | |
394 | 402 | asmlinkage void handle_badint(struct pt_regs *regs) |
arch/m68k/kernel/setup.c
... | ... | @@ -64,7 +64,7 @@ |
64 | 64 | |
65 | 65 | char m68k_debug_device[6] = ""; |
66 | 66 | |
67 | -void (*mach_sched_init) (irqreturn_t (*handler)(int, void *, struct pt_regs *)) __initdata = NULL; | |
67 | +void (*mach_sched_init) (irqreturn_t (*handler)(int, void *)) __initdata = NULL; | |
68 | 68 | /* machine dependent irq functions */ |
69 | 69 | void (*mach_init_IRQ) (void) __initdata = NULL; |
70 | 70 | void (*mach_get_model) (char *model); |
arch/m68k/kernel/time.c
... | ... | @@ -21,6 +21,7 @@ |
21 | 21 | |
22 | 22 | #include <asm/machdep.h> |
23 | 23 | #include <asm/io.h> |
24 | +#include <asm/irq_regs.h> | |
24 | 25 | |
25 | 26 | #include <linux/time.h> |
26 | 27 | #include <linux/timex.h> |
27 | 28 | |
28 | 29 | |
... | ... | @@ -37,13 +38,13 @@ |
37 | 38 | * timer_interrupt() needs to keep up the real-time clock, |
38 | 39 | * as well as call the "do_timer()" routine every clocktick |
39 | 40 | */ |
40 | -static irqreturn_t timer_interrupt(int irq, void *dummy, struct pt_regs * regs) | |
41 | +static irqreturn_t timer_interrupt(int irq, void *dummy) | |
41 | 42 | { |
42 | 43 | do_timer(1); |
43 | 44 | #ifndef CONFIG_SMP |
44 | - update_process_times(user_mode(regs)); | |
45 | + update_process_times(user_mode(get_irq_regs())); | |
45 | 46 | #endif |
46 | - profile_tick(CPU_PROFILING, regs); | |
47 | + profile_tick(CPU_PROFILING); | |
47 | 48 | |
48 | 49 | #ifdef CONFIG_HEARTBEAT |
49 | 50 | /* use power LED as a heartbeat instead -- much more useful |
arch/m68k/mac/baboon.c
... | ... | @@ -25,7 +25,7 @@ |
25 | 25 | int baboon_present,baboon_active; |
26 | 26 | volatile struct baboon *baboon; |
27 | 27 | |
28 | -irqreturn_t baboon_irq(int, void *, struct pt_regs *); | |
28 | +irqreturn_t baboon_irq(int, void *); | |
29 | 29 | |
30 | 30 | #if 0 |
31 | 31 | extern int macide_ack_intr(struct ata_channel *); |
... | ... | @@ -64,7 +64,7 @@ |
64 | 64 | * Baboon interrupt handler. This works a lot like a VIA. |
65 | 65 | */ |
66 | 66 | |
67 | -irqreturn_t baboon_irq(int irq, void *dev_id, struct pt_regs *regs) | |
67 | +irqreturn_t baboon_irq(int irq, void *dev_id) | |
68 | 68 | { |
69 | 69 | int irq_bit,i; |
70 | 70 | unsigned char events; |
... | ... | @@ -81,7 +81,7 @@ |
81 | 81 | for (i = 0, irq_bit = 1 ; i < 3 ; i++, irq_bit <<= 1) { |
82 | 82 | if (events & irq_bit/* & baboon_active*/) { |
83 | 83 | baboon_active &= ~irq_bit; |
84 | - m68k_handle_int(IRQ_BABOON_0 + i, regs); | |
84 | + m68k_handle_int(IRQ_BABOON_0 + i); | |
85 | 85 | baboon_active |= irq_bit; |
86 | 86 | baboon->mb_ifr &= ~irq_bit; |
87 | 87 | } |
arch/m68k/mac/config.c
... | ... | @@ -72,7 +72,7 @@ |
72 | 72 | extern void iop_preinit(void); |
73 | 73 | extern void iop_init(void); |
74 | 74 | extern void via_init(void); |
75 | -extern void via_init_clock(irqreturn_t (*func)(int, void *, struct pt_regs *)); | |
75 | +extern void via_init_clock(irqreturn_t (*func)(int, void *)); | |
76 | 76 | extern void via_flush_cache(void); |
77 | 77 | extern void oss_init(void); |
78 | 78 | extern void psc_init(void); |
... | ... | @@ -88,7 +88,7 @@ |
88 | 88 | |
89 | 89 | static void mac_get_model(char *str); |
90 | 90 | |
91 | -static void mac_sched_init(irqreturn_t (*vector)(int, void *, struct pt_regs *)) | |
91 | +static void mac_sched_init(irqreturn_t (*vector)(int, void *)) | |
92 | 92 | { |
93 | 93 | via_init_clock(vector); |
94 | 94 | } |
arch/m68k/mac/iop.c
... | ... | @@ -132,7 +132,7 @@ |
132 | 132 | |
133 | 133 | struct listener { |
134 | 134 | const char *devname; |
135 | - void (*handler)(struct iop_msg *, struct pt_regs *); | |
135 | + void (*handler)(struct iop_msg *); | |
136 | 136 | }; |
137 | 137 | |
138 | 138 | /* |
... | ... | @@ -152,7 +152,7 @@ |
152 | 152 | static struct iop_msg *iop_send_queue[NUM_IOPS][NUM_IOP_CHAN]; |
153 | 153 | static struct listener iop_listeners[NUM_IOPS][NUM_IOP_CHAN]; |
154 | 154 | |
155 | -irqreturn_t iop_ism_irq(int, void *, struct pt_regs *); | |
155 | +irqreturn_t iop_ism_irq(int, void *); | |
156 | 156 | |
157 | 157 | extern void oss_irq_enable(int); |
158 | 158 | |
... | ... | @@ -342,7 +342,7 @@ |
342 | 342 | */ |
343 | 343 | |
344 | 344 | int iop_listen(uint iop_num, uint chan, |
345 | - void (*handler)(struct iop_msg *, struct pt_regs *), | |
345 | + void (*handler)(struct iop_msg *), | |
346 | 346 | const char *devname) |
347 | 347 | { |
348 | 348 | if ((iop_num >= NUM_IOPS) || !iop_base[iop_num]) return -EINVAL; |
... | ... | @@ -407,7 +407,7 @@ |
407 | 407 | * has gone into the IOP_MSG_COMPLETE state. |
408 | 408 | */ |
409 | 409 | |
410 | -static void iop_handle_send(uint iop_num, uint chan, struct pt_regs *regs) | |
410 | +static void iop_handle_send(uint iop_num, uint chan) | |
411 | 411 | { |
412 | 412 | volatile struct mac_iop *iop = iop_base[iop_num]; |
413 | 413 | struct iop_msg *msg,*msg2; |
... | ... | @@ -426,7 +426,7 @@ |
426 | 426 | for (i = 0 ; i < IOP_MSG_LEN ; i++, offset++) { |
427 | 427 | msg->reply[i] = iop_readb(iop, offset); |
428 | 428 | } |
429 | - if (msg->handler) (*msg->handler)(msg, regs); | |
429 | + if (msg->handler) (*msg->handler)(msg); | |
430 | 430 | msg2 = msg; |
431 | 431 | msg = msg->next; |
432 | 432 | iop_free_msg(msg2); |
... | ... | @@ -440,7 +440,7 @@ |
440 | 440 | * gone into the IOP_MSG_NEW state. |
441 | 441 | */ |
442 | 442 | |
443 | -static void iop_handle_recv(uint iop_num, uint chan, struct pt_regs *regs) | |
443 | +static void iop_handle_recv(uint iop_num, uint chan) | |
444 | 444 | { |
445 | 445 | volatile struct mac_iop *iop = iop_base[iop_num]; |
446 | 446 | int i,offset; |
... | ... | @@ -468,7 +468,7 @@ |
468 | 468 | /* the message ourselves to avoid possible stalls. */ |
469 | 469 | |
470 | 470 | if (msg->handler) { |
471 | - (*msg->handler)(msg, regs); | |
471 | + (*msg->handler)(msg); | |
472 | 472 | } else { |
473 | 473 | #ifdef DEBUG_IOP |
474 | 474 | printk("iop_handle_recv: unclaimed message on iop %d channel %d\n", iop_num, chan); |
... | ... | @@ -492,7 +492,7 @@ |
492 | 492 | |
493 | 493 | int iop_send_message(uint iop_num, uint chan, void *privdata, |
494 | 494 | uint msg_len, __u8 *msg_data, |
495 | - void (*handler)(struct iop_msg *, struct pt_regs *)) | |
495 | + void (*handler)(struct iop_msg *)) | |
496 | 496 | { |
497 | 497 | struct iop_msg *msg, *q; |
498 | 498 | |
... | ... | @@ -584,7 +584,7 @@ |
584 | 584 | * Handle an ISM IOP interrupt |
585 | 585 | */ |
586 | 586 | |
587 | -irqreturn_t iop_ism_irq(int irq, void *dev_id, struct pt_regs *regs) | |
587 | +irqreturn_t iop_ism_irq(int irq, void *dev_id) | |
588 | 588 | { |
589 | 589 | uint iop_num = (uint) dev_id; |
590 | 590 | volatile struct mac_iop *iop = iop_base[iop_num]; |
... | ... | @@ -608,7 +608,7 @@ |
608 | 608 | printk(" %02X", state); |
609 | 609 | #endif |
610 | 610 | if (state == IOP_MSG_COMPLETE) { |
611 | - iop_handle_send(iop_num, i, regs); | |
611 | + iop_handle_send(iop_num, i); | |
612 | 612 | } |
613 | 613 | } |
614 | 614 | #ifdef DEBUG_IOP |
... | ... | @@ -628,7 +628,7 @@ |
628 | 628 | printk(" %02X", state); |
629 | 629 | #endif |
630 | 630 | if (state == IOP_MSG_NEW) { |
631 | - iop_handle_recv(iop_num, i, regs); | |
631 | + iop_handle_recv(iop_num, i); | |
632 | 632 | } |
633 | 633 | } |
634 | 634 | #ifdef DEBUG_IOP |
arch/m68k/mac/macints.c
... | ... | @@ -133,6 +133,7 @@ |
133 | 133 | #include <asm/hwtest.h> |
134 | 134 | #include <asm/errno.h> |
135 | 135 | #include <asm/macints.h> |
136 | +#include <asm/irq_regs.h> | |
136 | 137 | |
137 | 138 | #define DEBUG_SPURIOUS |
138 | 139 | #define SHUTUP_SONIC |
... | ... | @@ -208,8 +209,8 @@ |
208 | 209 | * console_loglevel determines NMI handler function |
209 | 210 | */ |
210 | 211 | |
211 | -irqreturn_t mac_nmi_handler(int, void *, struct pt_regs *); | |
212 | -irqreturn_t mac_debug_handler(int, void *, struct pt_regs *); | |
212 | +irqreturn_t mac_nmi_handler(int, void *); | |
213 | +irqreturn_t mac_debug_handler(int, void *); | |
213 | 214 | |
214 | 215 | /* #define DEBUG_MACINTS */ |
215 | 216 | |
... | ... | @@ -393,7 +394,7 @@ |
393 | 394 | |
394 | 395 | static int num_debug[8]; |
395 | 396 | |
396 | -irqreturn_t mac_debug_handler(int irq, void *dev_id, struct pt_regs *regs) | |
397 | +irqreturn_t mac_debug_handler(int irq, void *dev_id) | |
397 | 398 | { |
398 | 399 | if (num_debug[irq] < 10) { |
399 | 400 | printk("DEBUG: Unexpected IRQ %d\n", irq); |
... | ... | @@ -405,7 +406,7 @@ |
405 | 406 | static int in_nmi; |
406 | 407 | static volatile int nmi_hold; |
407 | 408 | |
408 | -irqreturn_t mac_nmi_handler(int irq, void *dev_id, struct pt_regs *fp) | |
409 | +irqreturn_t mac_nmi_handler(int irq, void *dev_id) | |
409 | 410 | { |
410 | 411 | int i; |
411 | 412 | /* |
... | ... | @@ -432,6 +433,7 @@ |
432 | 433 | |
433 | 434 | if (console_loglevel >= 8) { |
434 | 435 | #if 0 |
436 | + struct pt_regs *fp = get_irq_regs(); | |
435 | 437 | show_state(); |
436 | 438 | printk("PC: %08lx\nSR: %04x SP: %p\n", fp->pc, fp->sr, fp); |
437 | 439 | printk("d0: %08lx d1: %08lx d2: %08lx d3: %08lx\n", |
... | ... | @@ -479,7 +481,7 @@ |
479 | 481 | * here is cleaner than hacking it into drivers/char/macserial.c. |
480 | 482 | */ |
481 | 483 | |
482 | -void mac_scc_dispatch(int irq, void *dev_id, struct pt_regs *regs) | |
484 | +void mac_scc_dispatch(int irq, void *dev_id) | |
483 | 485 | { |
484 | 486 | volatile unsigned char *scc = (unsigned char *) mac_bi_data.sccbase + 2; |
485 | 487 | unsigned char reg; |
486 | 488 | |
... | ... | @@ -504,8 +506,8 @@ |
504 | 506 | /* pretty much kill the system. */ |
505 | 507 | |
506 | 508 | if (reg & 0x38) |
507 | - m68k_handle_int(IRQ_SCCA, regs); | |
509 | + m68k_handle_int(IRQ_SCCA); | |
508 | 510 | if (reg & 0x07) |
509 | - m68k_handle_int(IRQ_SCCB, regs); | |
511 | + m68k_handle_int(IRQ_SCCB); | |
510 | 512 | } |
arch/m68k/mac/oss.c
... | ... | @@ -30,11 +30,11 @@ |
30 | 30 | int oss_present; |
31 | 31 | volatile struct mac_oss *oss; |
32 | 32 | |
33 | -irqreturn_t oss_irq(int, void *, struct pt_regs *); | |
34 | -irqreturn_t oss_nubus_irq(int, void *, struct pt_regs *); | |
33 | +irqreturn_t oss_irq(int, void *); | |
34 | +irqreturn_t oss_nubus_irq(int, void *); | |
35 | 35 | |
36 | -extern irqreturn_t via1_irq(int, void *, struct pt_regs *); | |
37 | -extern irqreturn_t mac_scc_dispatch(int, void *, struct pt_regs *); | |
36 | +extern irqreturn_t via1_irq(int, void *); | |
37 | +extern irqreturn_t mac_scc_dispatch(int, void *); | |
38 | 38 | |
39 | 39 | /* |
40 | 40 | * Initialize the OSS |
... | ... | @@ -92,7 +92,7 @@ |
92 | 92 | * and SCSI; everything else is routed to its own autovector IRQ. |
93 | 93 | */ |
94 | 94 | |
95 | -irqreturn_t oss_irq(int irq, void *dev_id, struct pt_regs *regs) | |
95 | +irqreturn_t oss_irq(int irq, void *dev_id) | |
96 | 96 | { |
97 | 97 | int events; |
98 | 98 | |
... | ... | @@ -113,7 +113,7 @@ |
113 | 113 | oss->irq_pending &= ~OSS_IP_SOUND; |
114 | 114 | } else if (events & OSS_IP_SCSI) { |
115 | 115 | oss->irq_level[OSS_SCSI] = OSS_IRQLEV_DISABLED; |
116 | - m68k_handle_int(IRQ_MAC_SCSI, regs); | |
116 | + m68k_handle_int(IRQ_MAC_SCSI); | |
117 | 117 | oss->irq_pending &= ~OSS_IP_SCSI; |
118 | 118 | oss->irq_level[OSS_SCSI] = OSS_IRQLEV_SCSI; |
119 | 119 | } else { |
... | ... | @@ -128,7 +128,7 @@ |
128 | 128 | * Unlike the VIA/RBV this is on its own autovector interrupt level. |
129 | 129 | */ |
130 | 130 | |
131 | -irqreturn_t oss_nubus_irq(int irq, void *dev_id, struct pt_regs *regs) | |
131 | +irqreturn_t oss_nubus_irq(int irq, void *dev_id) | |
132 | 132 | { |
133 | 133 | int events, irq_bit, i; |
134 | 134 | |
... | ... | @@ -146,7 +146,7 @@ |
146 | 146 | for (i = 0, irq_bit = 1 ; i < 6 ; i++, irq_bit <<= 1) { |
147 | 147 | if (events & irq_bit) { |
148 | 148 | oss->irq_level[i] = OSS_IRQLEV_DISABLED; |
149 | - m68k_handle_int(NUBUS_SOURCE_BASE + i, regs); | |
149 | + m68k_handle_int(NUBUS_SOURCE_BASE + i); | |
150 | 150 | oss->irq_pending &= ~irq_bit; |
151 | 151 | oss->irq_level[i] = OSS_IRQLEV_NUBUS; |
152 | 152 | } |
arch/m68k/mac/psc.c
... | ... | @@ -30,7 +30,7 @@ |
30 | 30 | int psc_present; |
31 | 31 | volatile __u8 *psc; |
32 | 32 | |
33 | -irqreturn_t psc_irq(int, void *, struct pt_regs *); | |
33 | +irqreturn_t psc_irq(int, void *); | |
34 | 34 | |
35 | 35 | /* |
36 | 36 | * Debugging dump, used in various places to see what's going on. |
... | ... | @@ -127,7 +127,7 @@ |
127 | 127 | * PSC interrupt handler. It's a lot like the VIA interrupt handler. |
128 | 128 | */ |
129 | 129 | |
130 | -irqreturn_t psc_irq(int irq, void *dev_id, struct pt_regs *regs) | |
130 | +irqreturn_t psc_irq(int irq, void *dev_id) | |
131 | 131 | { |
132 | 132 | int pIFR = pIFRbase + ((int) dev_id); |
133 | 133 | int pIER = pIERbase + ((int) dev_id); |
... | ... | @@ -149,7 +149,7 @@ |
149 | 149 | for (i = 0, irq_bit = 1 ; i < 4 ; i++, irq_bit <<= 1) { |
150 | 150 | if (events & irq_bit) { |
151 | 151 | psc_write_byte(pIER, irq_bit); |
152 | - m68k_handle_int(base_irq + i, regs); | |
152 | + m68k_handle_int(base_irq + i); | |
153 | 153 | psc_write_byte(pIFR, irq_bit); |
154 | 154 | psc_write_byte(pIER, irq_bit | 0x80); |
155 | 155 | } |
arch/m68k/mac/via.c
... | ... | @@ -63,14 +63,14 @@ |
63 | 63 | static int nubus_active; |
64 | 64 | |
65 | 65 | void via_debug_dump(void); |
66 | -irqreturn_t via1_irq(int, void *, struct pt_regs *); | |
67 | -irqreturn_t via2_irq(int, void *, struct pt_regs *); | |
68 | -irqreturn_t via_nubus_irq(int, void *, struct pt_regs *); | |
66 | +irqreturn_t via1_irq(int, void *); | |
67 | +irqreturn_t via2_irq(int, void *); | |
68 | +irqreturn_t via_nubus_irq(int, void *); | |
69 | 69 | void via_irq_enable(int irq); |
70 | 70 | void via_irq_disable(int irq); |
71 | 71 | void via_irq_clear(int irq); |
72 | 72 | |
73 | -extern irqreturn_t mac_scc_dispatch(int, void *, struct pt_regs *); | |
73 | +extern irqreturn_t mac_scc_dispatch(int, void *); | |
74 | 74 | extern int oss_present; |
75 | 75 | |
76 | 76 | /* |
... | ... | @@ -235,7 +235,7 @@ |
235 | 235 | * Start the 100 Hz clock |
236 | 236 | */ |
237 | 237 | |
238 | -void __init via_init_clock(irqreturn_t (*func)(int, void *, struct pt_regs *)) | |
238 | +void __init via_init_clock(irqreturn_t (*func)(int, void *)) | |
239 | 239 | { |
240 | 240 | via1[vACR] |= 0x40; |
241 | 241 | via1[vT1LL] = MAC_CLOCK_LOW; |
... | ... | @@ -412,7 +412,7 @@ |
412 | 412 | * the machspec interrupt number after clearing the interrupt. |
413 | 413 | */ |
414 | 414 | |
415 | -irqreturn_t via1_irq(int irq, void *dev_id, struct pt_regs *regs) | |
415 | +irqreturn_t via1_irq(int irq, void *dev_id) | |
416 | 416 | { |
417 | 417 | int irq_bit, i; |
418 | 418 | unsigned char events, mask; |
... | ... | @@ -424,7 +424,7 @@ |
424 | 424 | for (i = 0, irq_bit = 1 ; i < 7 ; i++, irq_bit <<= 1) |
425 | 425 | if (events & irq_bit) { |
426 | 426 | via1[vIER] = irq_bit; |
427 | - m68k_handle_int(VIA1_SOURCE_BASE + i, regs); | |
427 | + m68k_handle_int(VIA1_SOURCE_BASE + i); | |
428 | 428 | via1[vIFR] = irq_bit; |
429 | 429 | via1[vIER] = irq_bit | 0x80; |
430 | 430 | } |
431 | 431 | |
... | ... | @@ -439,14 +439,14 @@ |
439 | 439 | /* No, it won't be set. that's why we're doing this. */ |
440 | 440 | via_irq_disable(IRQ_MAC_NUBUS); |
441 | 441 | via_irq_clear(IRQ_MAC_NUBUS); |
442 | - m68k_handle_int(IRQ_MAC_NUBUS, regs); | |
442 | + m68k_handle_int(IRQ_MAC_NUBUS); | |
443 | 443 | via_irq_enable(IRQ_MAC_NUBUS); |
444 | 444 | } |
445 | 445 | #endif |
446 | 446 | return IRQ_HANDLED; |
447 | 447 | } |
448 | 448 | |
449 | -irqreturn_t via2_irq(int irq, void *dev_id, struct pt_regs *regs) | |
449 | +irqreturn_t via2_irq(int irq, void *dev_id) | |
450 | 450 | { |
451 | 451 | int irq_bit, i; |
452 | 452 | unsigned char events, mask; |
... | ... | @@ -459,7 +459,7 @@ |
459 | 459 | if (events & irq_bit) { |
460 | 460 | via2[gIER] = irq_bit; |
461 | 461 | via2[gIFR] = irq_bit | rbv_clear; |
462 | - m68k_handle_int(VIA2_SOURCE_BASE + i, regs); | |
462 | + m68k_handle_int(VIA2_SOURCE_BASE + i); | |
463 | 463 | via2[gIER] = irq_bit | 0x80; |
464 | 464 | } |
465 | 465 | return IRQ_HANDLED; |
... | ... | @@ -470,7 +470,7 @@ |
470 | 470 | * VIA2 dispatcher as a fast interrupt handler. |
471 | 471 | */ |
472 | 472 | |
473 | -irqreturn_t via_nubus_irq(int irq, void *dev_id, struct pt_regs *regs) | |
473 | +irqreturn_t via_nubus_irq(int irq, void *dev_id) | |
474 | 474 | { |
475 | 475 | int irq_bit, i; |
476 | 476 | unsigned char events; |
... | ... | @@ -481,7 +481,7 @@ |
481 | 481 | for (i = 0, irq_bit = 1 ; i < 7 ; i++, irq_bit <<= 1) { |
482 | 482 | if (events & irq_bit) { |
483 | 483 | via_irq_disable(NUBUS_SOURCE_BASE + i); |
484 | - m68k_handle_int(NUBUS_SOURCE_BASE + i, regs); | |
484 | + m68k_handle_int(NUBUS_SOURCE_BASE + i); | |
485 | 485 | via_irq_enable(NUBUS_SOURCE_BASE + i); |
486 | 486 | } |
487 | 487 | } |
arch/m68k/mvme147/config.c
... | ... | @@ -38,7 +38,7 @@ |
38 | 38 | |
39 | 39 | static void mvme147_get_model(char *model); |
40 | 40 | static int mvme147_get_hardware_list(char *buffer); |
41 | -extern void mvme147_sched_init(irqreturn_t (*handler)(int, void *, struct pt_regs *)); | |
41 | +extern void mvme147_sched_init(irqreturn_t (*handler)(int, void *)); | |
42 | 42 | extern unsigned long mvme147_gettimeoffset (void); |
43 | 43 | extern int mvme147_hwclk (int, struct rtc_time *); |
44 | 44 | extern int mvme147_set_clock_mmss (unsigned long); |
... | ... | @@ -51,7 +51,7 @@ |
51 | 51 | /* Save tick handler routine pointer, will point to do_timer() in |
52 | 52 | * kernel/sched.c, called via mvme147_process_int() */ |
53 | 53 | |
54 | -irqreturn_t (*tick_handler)(int, void *, struct pt_regs *); | |
54 | +irqreturn_t (*tick_handler)(int, void *); | |
55 | 55 | |
56 | 56 | |
57 | 57 | int mvme147_parse_bootinfo(const struct bi_record *bi) |
58 | 58 | |
59 | 59 | |
... | ... | @@ -114,15 +114,15 @@ |
114 | 114 | |
115 | 115 | /* Using pcc tick timer 1 */ |
116 | 116 | |
117 | -static irqreturn_t mvme147_timer_int (int irq, void *dev_id, struct pt_regs *fp) | |
117 | +static irqreturn_t mvme147_timer_int (int irq, void *dev_id) | |
118 | 118 | { |
119 | 119 | m147_pcc->t1_int_cntrl = PCC_TIMER_INT_CLR; |
120 | 120 | m147_pcc->t1_int_cntrl = PCC_INT_ENAB|PCC_LEVEL_TIMER1; |
121 | - return tick_handler(irq, dev_id, fp); | |
121 | + return tick_handler(irq, dev_id); | |
122 | 122 | } |
123 | 123 | |
124 | 124 | |
125 | -void mvme147_sched_init (irqreturn_t (*timer_routine)(int, void *, struct pt_regs *)) | |
125 | +void mvme147_sched_init (irqreturn_t (*timer_routine)(int, void *)) | |
126 | 126 | { |
127 | 127 | tick_handler = timer_routine; |
128 | 128 | request_irq (PCC_IRQ_TIMER1, mvme147_timer_int, |
arch/m68k/mvme16x/config.c
... | ... | @@ -42,7 +42,7 @@ |
42 | 42 | |
43 | 43 | static void mvme16x_get_model(char *model); |
44 | 44 | static int mvme16x_get_hardware_list(char *buffer); |
45 | -extern void mvme16x_sched_init(irqreturn_t (*handler)(int, void *, struct pt_regs *)); | |
45 | +extern void mvme16x_sched_init(irqreturn_t (*handler)(int, void *)); | |
46 | 46 | extern unsigned long mvme16x_gettimeoffset (void); |
47 | 47 | extern int mvme16x_hwclk (int, struct rtc_time *); |
48 | 48 | extern int mvme16x_set_clock_mmss (unsigned long); |
... | ... | @@ -54,7 +54,7 @@ |
54 | 54 | /* Save tick handler routine pointer, will point to do_timer() in |
55 | 55 | * kernel/sched.c, called via mvme16x_process_int() */ |
56 | 56 | |
57 | -static irqreturn_t (*tick_handler)(int, void *, struct pt_regs *); | |
57 | +static irqreturn_t (*tick_handler)(int, void *); | |
58 | 58 | |
59 | 59 | |
60 | 60 | unsigned short mvme16x_config; |
... | ... | @@ -190,7 +190,7 @@ |
190 | 190 | } |
191 | 191 | } |
192 | 192 | |
193 | -static irqreturn_t mvme16x_abort_int (int irq, void *dev_id, struct pt_regs *fp) | |
193 | +static irqreturn_t mvme16x_abort_int (int irq, void *dev_id) | |
194 | 194 | { |
195 | 195 | p_bdid p = &mvme_bdid; |
196 | 196 | unsigned long *new = (unsigned long *)vectors; |
197 | 197 | |
198 | 198 | |
... | ... | @@ -218,13 +218,13 @@ |
218 | 218 | return IRQ_HANDLED; |
219 | 219 | } |
220 | 220 | |
221 | -static irqreturn_t mvme16x_timer_int (int irq, void *dev_id, struct pt_regs *fp) | |
221 | +static irqreturn_t mvme16x_timer_int (int irq, void *dev_id) | |
222 | 222 | { |
223 | 223 | *(volatile unsigned char *)0xfff4201b |= 8; |
224 | - return tick_handler(irq, dev_id, fp); | |
224 | + return tick_handler(irq, dev_id); | |
225 | 225 | } |
226 | 226 | |
227 | -void mvme16x_sched_init (irqreturn_t (*timer_routine)(int, void *, struct pt_regs *)) | |
227 | +void mvme16x_sched_init (irqreturn_t (*timer_routine)(int, void *)) | |
228 | 228 | { |
229 | 229 | p_bdid p = &mvme_bdid; |
230 | 230 | int irq; |
arch/m68k/q40/config.c
... | ... | @@ -39,7 +39,7 @@ |
39 | 39 | extern void q40_init_IRQ (void); |
40 | 40 | static void q40_get_model(char *model); |
41 | 41 | static int q40_get_hardware_list(char *buffer); |
42 | -extern void q40_sched_init(irqreturn_t (*handler)(int, void *, struct pt_regs *)); | |
42 | +extern void q40_sched_init(irqreturn_t (*handler)(int, void *)); | |
43 | 43 | |
44 | 44 | extern unsigned long q40_gettimeoffset (void); |
45 | 45 | extern int q40_hwclk (int, struct rtc_time *); |
arch/m68k/q40/q40ints.c
... | ... | @@ -125,9 +125,9 @@ |
125 | 125 | sound_ticks = ticks << 1; |
126 | 126 | } |
127 | 127 | |
128 | -static irqreturn_t (*q40_timer_routine)(int, void *, struct pt_regs *); | |
128 | +static irqreturn_t (*q40_timer_routine)(int, void *); | |
129 | 129 | |
130 | -static irqreturn_t q40_timer_int (int irq, void * dev, struct pt_regs * regs) | |
130 | +static irqreturn_t q40_timer_int (int irq, void * dev) | |
131 | 131 | { |
132 | 132 | ql_ticks = ql_ticks ? 0 : 1; |
133 | 133 | if (sound_ticks) { |
134 | 134 | |
... | ... | @@ -138,11 +138,11 @@ |
138 | 138 | } |
139 | 139 | |
140 | 140 | if (!ql_ticks) |
141 | - q40_timer_routine(irq, dev, regs); | |
141 | + q40_timer_routine(irq, dev); | |
142 | 142 | return IRQ_HANDLED; |
143 | 143 | } |
144 | 144 | |
145 | -void q40_sched_init (irqreturn_t (*timer_routine)(int, void *, struct pt_regs *)) | |
145 | +void q40_sched_init (irqreturn_t (*timer_routine)(int, void *)) | |
146 | 146 | { |
147 | 147 | int timer_irq; |
148 | 148 | |
149 | 149 | |
... | ... | @@ -218,11 +218,11 @@ |
218 | 218 | switch (irq) { |
219 | 219 | case 4: |
220 | 220 | case 6: |
221 | - m68k_handle_int(Q40_IRQ_SAMPLE, fp); | |
221 | + __m68k_handle_int(Q40_IRQ_SAMPLE, fp); | |
222 | 222 | return; |
223 | 223 | } |
224 | 224 | if (mir & Q40_IRQ_FRAME_MASK) { |
225 | - m68k_handle_int(Q40_IRQ_FRAME, fp); | |
225 | + __m68k_handle_int(Q40_IRQ_FRAME, fp); | |
226 | 226 | master_outb(-1, FRAME_CLEAR_REG); |
227 | 227 | } |
228 | 228 | if ((mir & Q40_IRQ_SER_MASK) || (mir & Q40_IRQ_EXT_MASK)) { |
... | ... | @@ -257,7 +257,7 @@ |
257 | 257 | goto iirq; |
258 | 258 | } |
259 | 259 | q40_state[irq] |= IRQ_INPROGRESS; |
260 | - m68k_handle_int(irq, fp); | |
260 | + __m68k_handle_int(irq, fp); | |
261 | 261 | q40_state[irq] &= ~IRQ_INPROGRESS; |
262 | 262 | |
263 | 263 | /* naively enable everything, if that fails than */ |
... | ... | @@ -288,7 +288,7 @@ |
288 | 288 | mir = master_inb(IIRQ_REG); |
289 | 289 | /* should test whether keyboard irq is really enabled, doing it in defhand */ |
290 | 290 | if (mir & Q40_IRQ_KEYB_MASK) |
291 | - m68k_handle_int(Q40_IRQ_KEYBOARD, fp); | |
291 | + __m68k_handle_int(Q40_IRQ_KEYBOARD, fp); | |
292 | 292 | |
293 | 293 | return; |
294 | 294 | } |
arch/m68k/sun3/config.c
... | ... | @@ -162,7 +162,7 @@ |
162 | 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 | 167 | sun3_disable_interrupts(); |
168 | 168 | intersil_clock->cmd_reg=(INTERSIL_RUN|INTERSIL_INT_DISABLE|INTERSIL_24H_MODE); |
arch/m68k/sun3/sun3ints.c
... | ... | @@ -15,6 +15,7 @@ |
15 | 15 | #include <asm/intersil.h> |
16 | 16 | #include <asm/oplib.h> |
17 | 17 | #include <asm/sun3ints.h> |
18 | +#include <asm/irq_regs.h> | |
18 | 19 | #include <linux/seq_file.h> |
19 | 20 | |
20 | 21 | extern void sun3_leds (unsigned char); |
... | ... | @@ -48,7 +49,7 @@ |
48 | 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 | 54 | *sun3_intreg |= (1 << irq); |
54 | 55 | if (!(kstat_cpu(0).irqs[irq] % 2000)) |
... | ... | @@ -56,7 +57,7 @@ |
56 | 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 | 62 | #ifdef CONFIG_SUN3 |
62 | 63 | intersil_clear(); |
63 | 64 | |
... | ... | @@ -67,14 +68,14 @@ |
67 | 68 | #endif |
68 | 69 | do_timer(1); |
69 | 70 | #ifndef CONFIG_SMP |
70 | - update_process_times(user_mode(fp)); | |
71 | + update_process_times(user_mode(get_irq_regs())); | |
71 | 72 | #endif |
72 | 73 | if (!(kstat_cpu(0).irqs[irq] % 20)) |
73 | 74 | sun3_leds(led_pattern[(kstat_cpu(0).irqs[irq] % 160) / 20]); |
74 | 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 | 80 | // intersil_clear(); |
80 | 81 | return IRQ_HANDLED; |
... | ... | @@ -84,7 +85,7 @@ |
84 | 85 | { |
85 | 86 | *sun3_intreg &= ~(1 << irq); |
86 | 87 | |
87 | - m68k_handle_int(irq, fp); | |
88 | + __m68k_handle_int(irq, fp); | |
88 | 89 | } |
89 | 90 | |
90 | 91 | static struct irq_controller sun3_irq_controller = { |
arch/m68k/sun3x/time.c
arch/m68k/sun3x/time.h
... | ... | @@ -3,7 +3,7 @@ |
3 | 3 | |
4 | 4 | extern int sun3x_hwclk(int set, struct rtc_time *t); |
5 | 5 | unsigned long sun3x_gettimeoffset (void); |
6 | -void sun3x_sched_init(irqreturn_t (*vector)(int, void *, struct pt_regs *)); | |
6 | +void sun3x_sched_init(irqreturn_t (*vector)(int, void *)); | |
7 | 7 | |
8 | 8 | struct mostek_dt { |
9 | 9 | volatile unsigned char csr; |
drivers/char/vme_scc.c
drivers/macintosh/adb-iop.c
drivers/macintosh/via-macii.c
drivers/macintosh/via-maciisi.c
drivers/macintosh/via-pmu68k.c
... | ... | @@ -221,7 +221,7 @@ |
221 | 221 | } |
222 | 222 | if (pmu_state == idle) { |
223 | 223 | adb_int_pending = 1; |
224 | - pmu_interrupt(0, NULL, NULL); | |
224 | + pmu_interrupt(0, NULL); | |
225 | 225 | } |
226 | 226 | pmu_poll(); |
227 | 227 | udelay(10); |
228 | 228 | |
... | ... | @@ -562,11 +562,11 @@ |
562 | 562 | local_irq_save(flags); |
563 | 563 | if (via1[IFR] & SR_INT) { |
564 | 564 | via1[IFR] = SR_INT; |
565 | - pmu_interrupt(IRQ_MAC_ADB_SR, NULL, NULL); | |
565 | + pmu_interrupt(IRQ_MAC_ADB_SR, NULL); | |
566 | 566 | } |
567 | 567 | if (via1[IFR] & CB1_INT) { |
568 | 568 | via1[IFR] = CB1_INT; |
569 | - pmu_interrupt(IRQ_MAC_ADB_CL, NULL, NULL); | |
569 | + pmu_interrupt(IRQ_MAC_ADB_CL, NULL); | |
570 | 570 | } |
571 | 571 | local_irq_restore(flags); |
572 | 572 | } |
drivers/net/7990.c
drivers/parport/parport_mfc3.c
... | ... | @@ -219,7 +219,7 @@ |
219 | 219 | if (this_port[i] != NULL) |
220 | 220 | if (pia(this_port[i])->crb & 128) { /* Board caused interrupt */ |
221 | 221 | dummy = pia(this_port[i])->pprb; /* clear irq bit */ |
222 | - parport_generic_irq(irq, this_port[i], regs); | |
222 | + parport_generic_irq(irq, this_port[i]); | |
223 | 223 | } |
224 | 224 | return IRQ_HANDLED; |
225 | 225 | } |
include/asm-m68k/atari_stdma.h
... | ... | @@ -8,8 +8,7 @@ |
8 | 8 | |
9 | 9 | /***************************** Prototypes *****************************/ |
10 | 10 | |
11 | -void stdma_lock(irqreturn_t (*handler)(int, void *, struct pt_regs *), | |
12 | - void *data); | |
11 | +void stdma_lock(irqreturn_t (*handler)(int, void *), void *data); | |
13 | 12 | void stdma_release( void ); |
14 | 13 | int stdma_others_waiting( void ); |
15 | 14 | int stdma_islocked( void ); |
include/asm-m68k/floppy.h
... | ... | @@ -17,8 +17,7 @@ |
17 | 17 | |
18 | 18 | #include <linux/vmalloc.h> |
19 | 19 | |
20 | -asmlinkage irqreturn_t floppy_hardint(int irq, void *dev_id, | |
21 | - struct pt_regs *regs); | |
20 | +asmlinkage irqreturn_t floppy_hardint(int irq, void *dev_id); | |
22 | 21 | |
23 | 22 | /* constants... */ |
24 | 23 | |
... | ... | @@ -184,8 +183,7 @@ |
184 | 183 | |
185 | 184 | /* this is the only truly Q40 specific function */ |
186 | 185 | |
187 | -asmlinkage irqreturn_t floppy_hardint(int irq, void *dev_id, | |
188 | - struct pt_regs *regs) | |
186 | +asmlinkage irqreturn_t floppy_hardint(int irq, void *dev_id) | |
189 | 187 | { |
190 | 188 | register unsigned char st; |
191 | 189 | |
... | ... | @@ -198,7 +196,7 @@ |
198 | 196 | static int dma_wait=0; |
199 | 197 | #endif |
200 | 198 | if(!doing_pdma) { |
201 | - floppy_interrupt(irq, dev_id, regs); | |
199 | + floppy_interrupt(irq, dev_id); | |
202 | 200 | return IRQ_HANDLED; |
203 | 201 | } |
204 | 202 | |
... | ... | @@ -246,7 +244,7 @@ |
246 | 244 | dma_wait=0; |
247 | 245 | #endif |
248 | 246 | doing_pdma = 0; |
249 | - floppy_interrupt(irq, dev_id, regs); | |
247 | + floppy_interrupt(irq, dev_id); | |
250 | 248 | return IRQ_HANDLED; |
251 | 249 | } |
252 | 250 | #ifdef TRACE_FLPY_INT |
include/asm-m68k/ide.h
... | ... | @@ -123,7 +123,7 @@ |
123 | 123 | } |
124 | 124 | |
125 | 125 | static __inline__ void |
126 | -ide_get_lock(irqreturn_t (*handler)(int, void *, struct pt_regs *), void *data) | |
126 | +ide_get_lock(irqreturn_t (*handler)(int, void *), void *data) | |
127 | 127 | { |
128 | 128 | if (MACH_IS_ATARI) { |
129 | 129 | if (falconide_intr_lock == 0) { |
include/asm-m68k/irq.h
... | ... | @@ -83,7 +83,7 @@ |
83 | 83 | * interrupt source (if it supports chaining). |
84 | 84 | */ |
85 | 85 | typedef struct irq_node { |
86 | - int (*handler)(int, void *, struct pt_regs *); | |
86 | + int (*handler)(int, void *); | |
87 | 87 | void *dev_id; |
88 | 88 | struct irq_node *next; |
89 | 89 | unsigned long flags; |
90 | 90 | |
... | ... | @@ -93,12 +93,12 @@ |
93 | 93 | /* |
94 | 94 | * This structure has only 4 elements for speed reasons |
95 | 95 | */ |
96 | -typedef struct irq_handler { | |
97 | - int (*handler)(int, void *, struct pt_regs *); | |
96 | +struct irq_handler { | |
97 | + int (*handler)(int, void *); | |
98 | 98 | unsigned long flags; |
99 | 99 | void *dev_id; |
100 | 100 | const char *devname; |
101 | -} irq_handler_t; | |
101 | +}; | |
102 | 102 | |
103 | 103 | struct irq_controller { |
104 | 104 | const char *name; |
... | ... | @@ -122,7 +122,8 @@ |
122 | 122 | void (*handler)(unsigned int, struct pt_regs *)); |
123 | 123 | extern void m68k_setup_irq_controller(struct irq_controller *, unsigned int, unsigned int); |
124 | 124 | |
125 | -asmlinkage void m68k_handle_int(unsigned int, struct pt_regs *); | |
125 | +asmlinkage void m68k_handle_int(unsigned int); | |
126 | +asmlinkage void __m68k_handle_int(unsigned int, struct pt_regs *); | |
126 | 127 | |
127 | 128 | #endif /* _M68K_IRQ_H_ */ |
include/asm-m68k/mac_iop.h
... | ... | @@ -143,17 +143,17 @@ |
143 | 143 | int status; /* status of this message */ |
144 | 144 | __u8 message[IOP_MSG_LEN]; /* the message being sent/received */ |
145 | 145 | __u8 reply[IOP_MSG_LEN]; /* the reply to the message */ |
146 | - void (*handler)(struct iop_msg *, struct pt_regs *); | |
146 | + void (*handler)(struct iop_msg *); | |
147 | 147 | /* function to call when reply recvd */ |
148 | 148 | }; |
149 | 149 | |
150 | 150 | extern int iop_scc_present,iop_ism_present; |
151 | 151 | |
152 | 152 | extern int iop_listen(uint, uint, |
153 | - void (*handler)(struct iop_msg *, struct pt_regs *), | |
153 | + void (*handler)(struct iop_msg *), | |
154 | 154 | const char *); |
155 | 155 | extern int iop_send_message(uint, uint, void *, uint, __u8 *, |
156 | - void (*)(struct iop_msg *, struct pt_regs *)); | |
156 | + void (*)(struct iop_msg *)); | |
157 | 157 | extern void iop_complete_message(struct iop_msg *); |
158 | 158 | extern void iop_upload_code(uint, __u8 *, uint, __u16); |
159 | 159 | extern void iop_download_code(uint, __u8 *, uint, __u16); |
include/asm-m68k/machdep.h
... | ... | @@ -10,7 +10,7 @@ |
10 | 10 | struct rtc_pll_info; |
11 | 11 | struct buffer_head; |
12 | 12 | |
13 | -extern void (*mach_sched_init) (irqreturn_t (*handler)(int, void *, struct pt_regs *)); | |
13 | +extern void (*mach_sched_init) (irqreturn_t (*handler)(int, void *)); | |
14 | 14 | /* machine dependent irq functions */ |
15 | 15 | extern void (*mach_init_IRQ) (void); |
16 | 16 | extern void (*mach_get_model) (char *model); |
include/asm-m68k/sun3xflop.h
... | ... | @@ -111,8 +111,7 @@ |
111 | 111 | } |
112 | 112 | |
113 | 113 | |
114 | -asmlinkage irqreturn_t sun3xflop_hardint(int irq, void *dev_id, | |
115 | - struct pt_regs * regs) | |
114 | +asmlinkage irqreturn_t sun3xflop_hardint(int irq, void *dev_id) | |
116 | 115 | { |
117 | 116 | register unsigned char st; |
118 | 117 | |
... | ... | @@ -125,7 +124,7 @@ |
125 | 124 | static int dma_wait=0; |
126 | 125 | #endif |
127 | 126 | if(!doing_pdma) { |
128 | - floppy_interrupt(irq, dev_id, regs); | |
127 | + floppy_interrupt(irq, dev_id); | |
129 | 128 | return IRQ_HANDLED; |
130 | 129 | } |
131 | 130 | |
... | ... | @@ -189,7 +188,7 @@ |
189 | 188 | dma_wait=0; |
190 | 189 | #endif |
191 | 190 | |
192 | - floppy_interrupt(irq, dev_id, regs); | |
191 | + floppy_interrupt(irq, dev_id); | |
193 | 192 | return IRQ_HANDLED; |
194 | 193 | } |
195 | 194 |