diff options
Diffstat (limited to 'arch/x86/kernel/kgdb.c')
| -rw-r--r-- | arch/x86/kernel/kgdb.c | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/arch/x86/kernel/kgdb.c b/arch/x86/kernel/kgdb.c index 8d82a77a3f3b..34e86b67550c 100644 --- a/arch/x86/kernel/kgdb.c +++ b/arch/x86/kernel/kgdb.c | |||
| @@ -43,6 +43,7 @@ | |||
| 43 | #include <linux/smp.h> | 43 | #include <linux/smp.h> |
| 44 | #include <linux/nmi.h> | 44 | #include <linux/nmi.h> |
| 45 | 45 | ||
| 46 | #include <asm/debugreg.h> | ||
| 46 | #include <asm/apicdef.h> | 47 | #include <asm/apicdef.h> |
| 47 | #include <asm/system.h> | 48 | #include <asm/system.h> |
| 48 | 49 | ||
| @@ -434,6 +435,11 @@ single_step_cont(struct pt_regs *regs, struct die_args *args) | |||
| 434 | "resuming...\n"); | 435 | "resuming...\n"); |
| 435 | kgdb_arch_handle_exception(args->trapnr, args->signr, | 436 | kgdb_arch_handle_exception(args->trapnr, args->signr, |
| 436 | args->err, "c", "", regs); | 437 | args->err, "c", "", regs); |
| 438 | /* | ||
| 439 | * Reset the BS bit in dr6 (pointed by args->err) to | ||
| 440 | * denote completion of processing | ||
| 441 | */ | ||
| 442 | (*(unsigned long *)ERR_PTR(args->err)) &= ~DR_STEP; | ||
| 437 | 443 | ||
| 438 | return NOTIFY_STOP; | 444 | return NOTIFY_STOP; |
| 439 | } | 445 | } |
