Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

[MIPS] DEC: pt_regs fixes for buserror handlers

Signed-off-by: Ralf Baechle <ralf@linux-mips.org>

+13 -11
+4 -1
arch/mips/dec/ecc-berr.c
··· 24 24 #include <asm/addrspace.h> 25 25 #include <asm/bootinfo.h> 26 26 #include <asm/cpu.h> 27 + #include <asm/irq_regs.h> 27 28 #include <asm/processor.h> 28 29 #include <asm/system.h> 29 30 #include <asm/traps.h> ··· 201 200 return dec_ecc_be_backend(regs, is_fixup, 0); 202 201 } 203 202 204 - irqreturn_t dec_ecc_be_interrupt(int irq, void *dev_id, struct pt_regs *regs) 203 + irqreturn_t dec_ecc_be_interrupt(int irq, void *dev_id) 205 204 { 205 + struct pt_regs *regs = get_irq_regs(); 206 + 206 207 int action = dec_ecc_be_backend(regs, 0, 1); 207 208 208 209 if (action == MIPS_BE_DISCARD)
+2 -2
arch/mips/dec/kn01-berr.c
··· 150 150 return dec_kn01_be_backend(regs, is_fixup, 0); 151 151 } 152 152 153 - irqreturn_t dec_kn01_be_interrupt(int irq, void *dev_id, 154 - struct pt_regs *regs) 153 + irqreturn_t dec_kn01_be_interrupt(int irq, void *dev_id) 155 154 { 156 155 volatile u16 *csr = (void *)CKSEG1ADDR(KN01_SLOT_BASE + KN01_CSR); 156 + struct pt_regs *regs = get_irq_regs(); 157 157 int action; 158 158 159 159 if (!(*csr & KN01_CSR_MEMERR))
+4 -2
arch/mips/dec/kn02xa-berr.c
··· 21 21 #include <linux/types.h> 22 22 23 23 #include <asm/addrspace.h> 24 + #include <asm/irq_regs.h> 25 + #include <asm/ptrace.h> 24 26 #include <asm/system.h> 25 27 #include <asm/traps.h> 26 28 ··· 106 104 return dec_kn02xa_be_backend(regs, is_fixup, 0); 107 105 } 108 106 109 - irqreturn_t dec_kn02xa_be_interrupt(int irq, void *dev_id, 110 - struct pt_regs *regs) 107 + irqreturn_t dec_kn02xa_be_interrupt(int irq, void *dev_id) 111 108 { 109 + struct pt_regs *regs = get_irq_regs(); 112 110 int action = dec_kn02xa_be_backend(regs, 0, 1); 113 111 114 112 if (action == MIPS_BE_DISCARD)
+1 -2
include/asm-mips/dec/ecc.h
··· 49 49 50 50 extern void dec_ecc_be_init(void); 51 51 extern int dec_ecc_be_handler(struct pt_regs *regs, int is_fixup); 52 - extern irqreturn_t dec_ecc_be_interrupt(int irq, void *dev_id, 53 - struct pt_regs *regs); 52 + extern irqreturn_t dec_ecc_be_interrupt(int irq, void *dev_id); 54 53 #endif 55 54 56 55 #endif /* __ASM_MIPS_DEC_ECC_H */
+1 -2
include/asm-mips/dec/kn01.h
··· 84 84 85 85 extern void dec_kn01_be_init(void); 86 86 extern int dec_kn01_be_handler(struct pt_regs *regs, int is_fixup); 87 - extern irqreturn_t dec_kn01_be_interrupt(int irq, void *dev_id, 88 - struct pt_regs *regs); 87 + extern irqreturn_t dec_kn01_be_interrupt(int irq, void *dev_id); 89 88 #endif 90 89 91 90 #endif /* __ASM_MIPS_DEC_KN01_H */
+1 -2
include/asm-mips/dec/kn02xa.h
··· 78 78 79 79 extern void dec_kn02xa_be_init(void); 80 80 extern int dec_kn02xa_be_handler(struct pt_regs *regs, int is_fixup); 81 - extern irqreturn_t dec_kn02xa_be_interrupt(int irq, void *dev_id, 82 - struct pt_regs *regs); 81 + extern irqreturn_t dec_kn02xa_be_interrupt(int irq, void *dev_id); 83 82 #endif 84 83 85 84 #endif /* __ASM_MIPS_DEC_KN02XA_H */