diff options
Diffstat (limited to 'arch/mn10300/kernel/gdb-stub.c')
-rw-r--r-- | arch/mn10300/kernel/gdb-stub.c | 17 |
1 files changed, 6 insertions, 11 deletions
diff --git a/arch/mn10300/kernel/gdb-stub.c b/arch/mn10300/kernel/gdb-stub.c index 41b11706c8ed..a5fc3f05309b 100644 --- a/arch/mn10300/kernel/gdb-stub.c +++ b/arch/mn10300/kernel/gdb-stub.c | |||
@@ -440,15 +440,11 @@ static const unsigned char gdbstub_insn_sizes[256] = | |||
440 | 440 | ||
441 | static int __gdbstub_mark_bp(u8 *addr, int ix) | 441 | static int __gdbstub_mark_bp(u8 *addr, int ix) |
442 | { | 442 | { |
443 | if (addr < (u8 *) 0x70000000UL) | 443 | /* vmalloc area */ |
444 | return 0; | 444 | if (((u8 *) VMALLOC_START <= addr) && (addr < (u8 *) VMALLOC_END)) |
445 | /* 70000000-7fffffff: vmalloc area */ | ||
446 | if (addr < (u8 *) 0x80000000UL) | ||
447 | goto okay; | 445 | goto okay; |
448 | if (addr < (u8 *) 0x8c000000UL) | 446 | /* SRAM, SDRAM */ |
449 | return 0; | 447 | if (((u8 *) 0x80000000UL <= addr) && (addr < (u8 *) 0xa0000000UL)) |
450 | /* 8c000000-93ffffff: SRAM, SDRAM */ | ||
451 | if (addr < (u8 *) 0x94000000UL) | ||
452 | goto okay; | 448 | goto okay; |
453 | return 0; | 449 | return 0; |
454 | 450 | ||
@@ -1197,9 +1193,8 @@ static int gdbstub(struct pt_regs *regs, enum exception_code excep) | |||
1197 | mn10300_set_gdbleds(1); | 1193 | mn10300_set_gdbleds(1); |
1198 | 1194 | ||
1199 | asm volatile("mov mdr,%0" : "=d"(mdr)); | 1195 | asm volatile("mov mdr,%0" : "=d"(mdr)); |
1200 | asm volatile("mov epsw,%0" : "=d"(epsw)); | 1196 | local_save_flags(epsw); |
1201 | asm volatile("mov %0,epsw" | 1197 | local_change_intr_mask_level(NUM2EPSW_IM(CONFIG_GDBSTUB_IRQ_LEVEL + 1)); |
1202 | :: "d"((epsw & ~EPSW_IM) | EPSW_IE | EPSW_IM_1)); | ||
1203 | 1198 | ||
1204 | gdbstub_store_fpu(); | 1199 | gdbstub_store_fpu(); |
1205 | 1200 | ||