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 /include/asm-m68k | |
| 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 'include/asm-m68k')
| -rw-r--r-- | include/asm-m68k/atari_stdma.h | 3 | ||||
| -rw-r--r-- | include/asm-m68k/floppy.h | 10 | ||||
| -rw-r--r-- | include/asm-m68k/ide.h | 2 | ||||
| -rw-r--r-- | include/asm-m68k/irq.h | 11 | ||||
| -rw-r--r-- | include/asm-m68k/mac_iop.h | 6 | ||||
| -rw-r--r-- | include/asm-m68k/machdep.h | 2 | ||||
| -rw-r--r-- | include/asm-m68k/sun3xflop.h | 7 |
7 files changed, 19 insertions, 22 deletions
diff --git a/include/asm-m68k/atari_stdma.h b/include/asm-m68k/atari_stdma.h index b4eadf852738..a6986af7915e 100644 --- a/include/asm-m68k/atari_stdma.h +++ b/include/asm-m68k/atari_stdma.h | |||
| @@ -8,8 +8,7 @@ | |||
| 8 | 8 | ||
| 9 | /***************************** Prototypes *****************************/ | 9 | /***************************** Prototypes *****************************/ |
| 10 | 10 | ||
| 11 | void stdma_lock(irqreturn_t (*handler)(int, void *, struct pt_regs *), | 11 | void stdma_lock(irqreturn_t (*handler)(int, void *), void *data); |
| 12 | void *data); | ||
| 13 | void stdma_release( void ); | 12 | void stdma_release( void ); |
| 14 | int stdma_others_waiting( void ); | 13 | int stdma_others_waiting( void ); |
| 15 | int stdma_islocked( void ); | 14 | int stdma_islocked( void ); |
diff --git a/include/asm-m68k/floppy.h b/include/asm-m68k/floppy.h index 57f4fdda65ab..45dc908932a3 100644 --- a/include/asm-m68k/floppy.h +++ b/include/asm-m68k/floppy.h | |||
| @@ -17,8 +17,7 @@ | |||
| 17 | 17 | ||
| 18 | #include <linux/vmalloc.h> | 18 | #include <linux/vmalloc.h> |
| 19 | 19 | ||
| 20 | asmlinkage irqreturn_t floppy_hardint(int irq, void *dev_id, | 20 | asmlinkage irqreturn_t floppy_hardint(int irq, void *dev_id); |
| 21 | struct pt_regs *regs); | ||
| 22 | 21 | ||
| 23 | /* constants... */ | 22 | /* constants... */ |
| 24 | 23 | ||
| @@ -184,8 +183,7 @@ static void fd_disable_dma(void) | |||
| 184 | 183 | ||
| 185 | /* this is the only truly Q40 specific function */ | 184 | /* this is the only truly Q40 specific function */ |
| 186 | 185 | ||
| 187 | asmlinkage irqreturn_t floppy_hardint(int irq, void *dev_id, | 186 | asmlinkage irqreturn_t floppy_hardint(int irq, void *dev_id) |
| 188 | struct pt_regs *regs) | ||
| 189 | { | 187 | { |
| 190 | register unsigned char st; | 188 | register unsigned char st; |
| 191 | 189 | ||
| @@ -198,7 +196,7 @@ asmlinkage irqreturn_t floppy_hardint(int irq, void *dev_id, | |||
| 198 | static int dma_wait=0; | 196 | static int dma_wait=0; |
| 199 | #endif | 197 | #endif |
| 200 | if(!doing_pdma) { | 198 | if(!doing_pdma) { |
| 201 | floppy_interrupt(irq, dev_id, regs); | 199 | floppy_interrupt(irq, dev_id); |
| 202 | return IRQ_HANDLED; | 200 | return IRQ_HANDLED; |
| 203 | } | 201 | } |
| 204 | 202 | ||
| @@ -246,7 +244,7 @@ asmlinkage irqreturn_t floppy_hardint(int irq, void *dev_id, | |||
| 246 | dma_wait=0; | 244 | dma_wait=0; |
| 247 | #endif | 245 | #endif |
| 248 | doing_pdma = 0; | 246 | doing_pdma = 0; |
| 249 | floppy_interrupt(irq, dev_id, regs); | 247 | floppy_interrupt(irq, dev_id); |
| 250 | return IRQ_HANDLED; | 248 | return IRQ_HANDLED; |
| 251 | } | 249 | } |
| 252 | #ifdef TRACE_FLPY_INT | 250 | #ifdef TRACE_FLPY_INT |
diff --git a/include/asm-m68k/ide.h b/include/asm-m68k/ide.h index 365f76fb8013..896683a7a1f3 100644 --- a/include/asm-m68k/ide.h +++ b/include/asm-m68k/ide.h | |||
| @@ -123,7 +123,7 @@ static __inline__ void ide_release_lock (void) | |||
| 123 | } | 123 | } |
| 124 | 124 | ||
| 125 | static __inline__ void | 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 | if (MACH_IS_ATARI) { | 128 | if (MACH_IS_ATARI) { |
| 129 | if (falconide_intr_lock == 0) { | 129 | if (falconide_intr_lock == 0) { |
diff --git a/include/asm-m68k/irq.h b/include/asm-m68k/irq.h index 3257f9881002..4901cb105e2f 100644 --- a/include/asm-m68k/irq.h +++ b/include/asm-m68k/irq.h | |||
| @@ -83,7 +83,7 @@ struct pt_regs; | |||
| 83 | * interrupt source (if it supports chaining). | 83 | * interrupt source (if it supports chaining). |
| 84 | */ | 84 | */ |
| 85 | typedef struct irq_node { | 85 | typedef struct irq_node { |
| 86 | int (*handler)(int, void *, struct pt_regs *); | 86 | int (*handler)(int, void *); |
| 87 | void *dev_id; | 87 | void *dev_id; |
| 88 | struct irq_node *next; | 88 | struct irq_node *next; |
| 89 | unsigned long flags; | 89 | unsigned long flags; |
| @@ -93,12 +93,12 @@ typedef struct irq_node { | |||
| 93 | /* | 93 | /* |
| 94 | * This structure has only 4 elements for speed reasons | 94 | * This structure has only 4 elements for speed reasons |
| 95 | */ | 95 | */ |
| 96 | typedef struct irq_handler { | 96 | struct irq_handler { |
| 97 | int (*handler)(int, void *, struct pt_regs *); | 97 | int (*handler)(int, void *); |
| 98 | unsigned long flags; | 98 | unsigned long flags; |
| 99 | void *dev_id; | 99 | void *dev_id; |
| 100 | const char *devname; | 100 | const char *devname; |
| 101 | } irq_handler_t; | 101 | }; |
| 102 | 102 | ||
| 103 | struct irq_controller { | 103 | struct irq_controller { |
| 104 | const char *name; | 104 | const char *name; |
| @@ -122,6 +122,7 @@ extern void m68k_setup_user_interrupt(unsigned int vec, unsigned int cnt, | |||
| 122 | void (*handler)(unsigned int, struct pt_regs *)); | 122 | void (*handler)(unsigned int, struct pt_regs *)); |
| 123 | extern void m68k_setup_irq_controller(struct irq_controller *, unsigned int, unsigned int); | 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 | #endif /* _M68K_IRQ_H_ */ | 128 | #endif /* _M68K_IRQ_H_ */ |
diff --git a/include/asm-m68k/mac_iop.h b/include/asm-m68k/mac_iop.h index b0d2e3473537..a2c7e6fcca38 100644 --- a/include/asm-m68k/mac_iop.h +++ b/include/asm-m68k/mac_iop.h | |||
| @@ -143,17 +143,17 @@ struct iop_msg { | |||
| 143 | int status; /* status of this message */ | 143 | int status; /* status of this message */ |
| 144 | __u8 message[IOP_MSG_LEN]; /* the message being sent/received */ | 144 | __u8 message[IOP_MSG_LEN]; /* the message being sent/received */ |
| 145 | __u8 reply[IOP_MSG_LEN]; /* the reply to the message */ | 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 | /* function to call when reply recvd */ | 147 | /* function to call when reply recvd */ |
| 148 | }; | 148 | }; |
| 149 | 149 | ||
| 150 | extern int iop_scc_present,iop_ism_present; | 150 | extern int iop_scc_present,iop_ism_present; |
| 151 | 151 | ||
| 152 | extern int iop_listen(uint, uint, | 152 | extern int iop_listen(uint, uint, |
| 153 | void (*handler)(struct iop_msg *, struct pt_regs *), | 153 | void (*handler)(struct iop_msg *), |
| 154 | const char *); | 154 | const char *); |
| 155 | extern int iop_send_message(uint, uint, void *, uint, __u8 *, | 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 | extern void iop_complete_message(struct iop_msg *); | 157 | extern void iop_complete_message(struct iop_msg *); |
| 158 | extern void iop_upload_code(uint, __u8 *, uint, __u16); | 158 | extern void iop_upload_code(uint, __u8 *, uint, __u16); |
| 159 | extern void iop_download_code(uint, __u8 *, uint, __u16); | 159 | extern void iop_download_code(uint, __u8 *, uint, __u16); |
diff --git a/include/asm-m68k/machdep.h b/include/asm-m68k/machdep.h index df898f27e434..862afa4c35d8 100644 --- a/include/asm-m68k/machdep.h +++ b/include/asm-m68k/machdep.h | |||
| @@ -10,7 +10,7 @@ struct rtc_time; | |||
| 10 | struct rtc_pll_info; | 10 | struct rtc_pll_info; |
| 11 | struct buffer_head; | 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 | /* machine dependent irq functions */ | 14 | /* machine dependent irq functions */ |
| 15 | extern void (*mach_init_IRQ) (void); | 15 | extern void (*mach_init_IRQ) (void); |
| 16 | extern void (*mach_get_model) (char *model); | 16 | extern void (*mach_get_model) (char *model); |
diff --git a/include/asm-m68k/sun3xflop.h b/include/asm-m68k/sun3xflop.h index ca8cc4113843..32c45f84ac60 100644 --- a/include/asm-m68k/sun3xflop.h +++ b/include/asm-m68k/sun3xflop.h | |||
| @@ -111,8 +111,7 @@ static void sun3x_82072_fd_outb(unsigned char value, int port) | |||
| 111 | } | 111 | } |
| 112 | 112 | ||
| 113 | 113 | ||
| 114 | asmlinkage irqreturn_t sun3xflop_hardint(int irq, void *dev_id, | 114 | asmlinkage irqreturn_t sun3xflop_hardint(int irq, void *dev_id) |
| 115 | struct pt_regs * regs) | ||
| 116 | { | 115 | { |
| 117 | register unsigned char st; | 116 | register unsigned char st; |
| 118 | 117 | ||
| @@ -125,7 +124,7 @@ asmlinkage irqreturn_t sun3xflop_hardint(int irq, void *dev_id, | |||
| 125 | static int dma_wait=0; | 124 | static int dma_wait=0; |
| 126 | #endif | 125 | #endif |
| 127 | if(!doing_pdma) { | 126 | if(!doing_pdma) { |
| 128 | floppy_interrupt(irq, dev_id, regs); | 127 | floppy_interrupt(irq, dev_id); |
| 129 | return IRQ_HANDLED; | 128 | return IRQ_HANDLED; |
| 130 | } | 129 | } |
| 131 | 130 | ||
| @@ -189,7 +188,7 @@ asmlinkage irqreturn_t sun3xflop_hardint(int irq, void *dev_id, | |||
| 189 | dma_wait=0; | 188 | dma_wait=0; |
| 190 | #endif | 189 | #endif |
| 191 | 190 | ||
| 192 | floppy_interrupt(irq, dev_id, regs); | 191 | floppy_interrupt(irq, dev_id); |
| 193 | return IRQ_HANDLED; | 192 | return IRQ_HANDLED; |
| 194 | } | 193 | } |
| 195 | 194 | ||
