diff options
| -rw-r--r-- | arch/avr32/kernel/traps.c | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/arch/avr32/kernel/traps.c b/arch/avr32/kernel/traps.c index cf6f686d9b0b..b835c4c01368 100644 --- a/arch/avr32/kernel/traps.c +++ b/arch/avr32/kernel/traps.c | |||
| @@ -178,6 +178,7 @@ static int do_cop_absent(u32 insn) | |||
| 178 | return 0; | 178 | return 0; |
| 179 | } | 179 | } |
| 180 | 180 | ||
| 181 | #ifdef CONFIG_BUG | ||
| 181 | int is_valid_bugaddr(unsigned long pc) | 182 | int is_valid_bugaddr(unsigned long pc) |
| 182 | { | 183 | { |
| 183 | unsigned short opcode; | 184 | unsigned short opcode; |
| @@ -189,6 +190,7 @@ int is_valid_bugaddr(unsigned long pc) | |||
| 189 | 190 | ||
| 190 | return opcode == AVR32_BUG_OPCODE; | 191 | return opcode == AVR32_BUG_OPCODE; |
| 191 | } | 192 | } |
| 193 | #endif | ||
| 192 | 194 | ||
| 193 | asmlinkage void do_illegal_opcode(unsigned long ecr, struct pt_regs *regs) | 195 | asmlinkage void do_illegal_opcode(unsigned long ecr, struct pt_regs *regs) |
| 194 | { | 196 | { |
| @@ -197,6 +199,7 @@ asmlinkage void do_illegal_opcode(unsigned long ecr, struct pt_regs *regs) | |||
| 197 | void __user *pc; | 199 | void __user *pc; |
| 198 | long code; | 200 | long code; |
| 199 | 201 | ||
| 202 | #ifdef CONFIG_BUG | ||
| 200 | if (!user_mode(regs) && (ecr == ECR_ILLEGAL_OPCODE)) { | 203 | if (!user_mode(regs) && (ecr == ECR_ILLEGAL_OPCODE)) { |
| 201 | enum bug_trap_type type; | 204 | enum bug_trap_type type; |
| 202 | 205 | ||
| @@ -211,6 +214,7 @@ asmlinkage void do_illegal_opcode(unsigned long ecr, struct pt_regs *regs) | |||
| 211 | die("Kernel BUG", regs, SIGKILL); | 214 | die("Kernel BUG", regs, SIGKILL); |
| 212 | } | 215 | } |
| 213 | } | 216 | } |
| 217 | #endif | ||
| 214 | 218 | ||
| 215 | local_irq_enable(); | 219 | local_irq_enable(); |
| 216 | 220 | ||
