diff options
Diffstat (limited to 'drivers/misc/kgdbts.c')
| -rw-r--r-- | drivers/misc/kgdbts.c | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/drivers/misc/kgdbts.c b/drivers/misc/kgdbts.c index fcb6ec1af173..72450237a0f4 100644 --- a/drivers/misc/kgdbts.c +++ b/drivers/misc/kgdbts.c | |||
| @@ -295,6 +295,10 @@ static int check_and_rewind_pc(char *put_str, char *arg) | |||
| 295 | /* On x86 a breakpoint stop requires it to be decremented */ | 295 | /* On x86 a breakpoint stop requires it to be decremented */ |
| 296 | if (addr + 1 == kgdbts_regs.ip) | 296 | if (addr + 1 == kgdbts_regs.ip) |
| 297 | offset = -1; | 297 | offset = -1; |
| 298 | #elif defined(CONFIG_SUPERH) | ||
| 299 | /* On SUPERH a breakpoint stop requires it to be decremented */ | ||
| 300 | if (addr + 2 == kgdbts_regs.pc) | ||
| 301 | offset = -2; | ||
| 298 | #endif | 302 | #endif |
| 299 | if (strcmp(arg, "silent") && | 303 | if (strcmp(arg, "silent") && |
| 300 | instruction_pointer(&kgdbts_regs) + offset != addr) { | 304 | instruction_pointer(&kgdbts_regs) + offset != addr) { |
| @@ -305,6 +309,8 @@ static int check_and_rewind_pc(char *put_str, char *arg) | |||
| 305 | #ifdef CONFIG_X86 | 309 | #ifdef CONFIG_X86 |
| 306 | /* On x86 adjust the instruction pointer if needed */ | 310 | /* On x86 adjust the instruction pointer if needed */ |
| 307 | kgdbts_regs.ip += offset; | 311 | kgdbts_regs.ip += offset; |
| 312 | #elif defined(CONFIG_SUPERH) | ||
| 313 | kgdbts_regs.pc += offset; | ||
| 308 | #endif | 314 | #endif |
| 309 | return 0; | 315 | return 0; |
| 310 | } | 316 | } |
