diff options
-rw-r--r-- | arch/x86/kernel/kgdb.c | 29 | ||||
-rw-r--r-- | include/linux/kgdb.h | 14 | ||||
-rw-r--r-- | kernel/debug/debug_core.c | 8 |
3 files changed, 0 insertions, 51 deletions
diff --git a/arch/x86/kernel/kgdb.c b/arch/x86/kernel/kgdb.c index f95a2c0b915c..acba57169938 100644 --- a/arch/x86/kernel/kgdb.c +++ b/arch/x86/kernel/kgdb.c | |||
@@ -47,20 +47,8 @@ | |||
47 | #include <asm/debugreg.h> | 47 | #include <asm/debugreg.h> |
48 | #include <asm/apicdef.h> | 48 | #include <asm/apicdef.h> |
49 | #include <asm/system.h> | 49 | #include <asm/system.h> |
50 | |||
51 | #include <asm/apic.h> | 50 | #include <asm/apic.h> |
52 | 51 | ||
53 | /* | ||
54 | * Put the error code here just in case the user cares: | ||
55 | */ | ||
56 | static int gdb_x86errcode; | ||
57 | |||
58 | /* | ||
59 | * Likewise, the vector number here (since GDB only gets the signal | ||
60 | * number through the usual means, and that's not very specific): | ||
61 | */ | ||
62 | static int gdb_x86vector = -1; | ||
63 | |||
64 | /** | 52 | /** |
65 | * pt_regs_to_gdb_regs - Convert ptrace regs to GDB regs | 53 | * pt_regs_to_gdb_regs - Convert ptrace regs to GDB regs |
66 | * @gdb_regs: A pointer to hold the registers in the order GDB wants. | 54 | * @gdb_regs: A pointer to hold the registers in the order GDB wants. |
@@ -399,23 +387,6 @@ void kgdb_disable_hw_debug(struct pt_regs *regs) | |||
399 | } | 387 | } |
400 | } | 388 | } |
401 | 389 | ||
402 | /** | ||
403 | * kgdb_post_primary_code - Save error vector/code numbers. | ||
404 | * @regs: Original pt_regs. | ||
405 | * @e_vector: Original error vector. | ||
406 | * @err_code: Original error code. | ||
407 | * | ||
408 | * This is needed on architectures which support SMP and KGDB. | ||
409 | * This function is called after all the slave cpus have been put | ||
410 | * to a know spin state and the primary CPU has control over KGDB. | ||
411 | */ | ||
412 | void kgdb_post_primary_code(struct pt_regs *regs, int e_vector, int err_code) | ||
413 | { | ||
414 | /* primary processor is completely in the debugger */ | ||
415 | gdb_x86vector = e_vector; | ||
416 | gdb_x86errcode = err_code; | ||
417 | } | ||
418 | |||
419 | #ifdef CONFIG_SMP | 390 | #ifdef CONFIG_SMP |
420 | /** | 391 | /** |
421 | * kgdb_roundup_cpus - Get other CPUs into a holding pattern | 392 | * kgdb_roundup_cpus - Get other CPUs into a holding pattern |
diff --git a/include/linux/kgdb.h b/include/linux/kgdb.h index 407edb1e0c4d..406f6f9286f3 100644 --- a/include/linux/kgdb.h +++ b/include/linux/kgdb.h | |||
@@ -36,20 +36,6 @@ struct pt_regs; | |||
36 | extern int kgdb_skipexception(int exception, struct pt_regs *regs); | 36 | extern int kgdb_skipexception(int exception, struct pt_regs *regs); |
37 | 37 | ||
38 | /** | 38 | /** |
39 | * kgdb_post_primary_code - (optional) Save error vector/code numbers. | ||
40 | * @regs: Original pt_regs. | ||
41 | * @e_vector: Original error vector. | ||
42 | * @err_code: Original error code. | ||
43 | * | ||
44 | * This is usually needed on architectures which support SMP and | ||
45 | * KGDB. This function is called after all the secondary cpus have | ||
46 | * been put to a know spin state and the primary CPU has control over | ||
47 | * KGDB. | ||
48 | */ | ||
49 | extern void kgdb_post_primary_code(struct pt_regs *regs, int e_vector, | ||
50 | int err_code); | ||
51 | |||
52 | /** | ||
53 | * kgdb_disable_hw_debug - (optional) Disable hardware debugging hook | 39 | * kgdb_disable_hw_debug - (optional) Disable hardware debugging hook |
54 | * @regs: Current &struct pt_regs. | 40 | * @regs: Current &struct pt_regs. |
55 | * | 41 | * |
diff --git a/kernel/debug/debug_core.c b/kernel/debug/debug_core.c index 1aed37b4c564..88a83a225374 100644 --- a/kernel/debug/debug_core.c +++ b/kernel/debug/debug_core.c | |||
@@ -203,12 +203,6 @@ int __weak kgdb_skipexception(int exception, struct pt_regs *regs) | |||
203 | return 0; | 203 | return 0; |
204 | } | 204 | } |
205 | 205 | ||
206 | void __weak | ||
207 | kgdb_post_primary_code(struct pt_regs *regs, int e_vector, int err_code) | ||
208 | { | ||
209 | return; | ||
210 | } | ||
211 | |||
212 | /** | 206 | /** |
213 | * kgdb_disable_hw_debug - Disable hardware debugging while we in kgdb. | 207 | * kgdb_disable_hw_debug - Disable hardware debugging while we in kgdb. |
214 | * @regs: Current &struct pt_regs. | 208 | * @regs: Current &struct pt_regs. |
@@ -588,7 +582,6 @@ return_normal: | |||
588 | * At this point the primary processor is completely | 582 | * At this point the primary processor is completely |
589 | * in the debugger and all secondary CPUs are quiescent | 583 | * in the debugger and all secondary CPUs are quiescent |
590 | */ | 584 | */ |
591 | kgdb_post_primary_code(ks->linux_regs, ks->ex_vector, ks->err_code); | ||
592 | dbg_deactivate_sw_breakpoints(); | 585 | dbg_deactivate_sw_breakpoints(); |
593 | kgdb_single_step = 0; | 586 | kgdb_single_step = 0; |
594 | kgdb_contthread = current; | 587 | kgdb_contthread = current; |
@@ -678,7 +671,6 @@ kgdb_handle_exception(int evector, int signo, int ecode, struct pt_regs *regs) | |||
678 | ks->cpu = raw_smp_processor_id(); | 671 | ks->cpu = raw_smp_processor_id(); |
679 | ks->ex_vector = evector; | 672 | ks->ex_vector = evector; |
680 | ks->signo = signo; | 673 | ks->signo = signo; |
681 | ks->ex_vector = evector; | ||
682 | ks->err_code = ecode; | 674 | ks->err_code = ecode; |
683 | ks->kgdb_usethreadid = 0; | 675 | ks->kgdb_usethreadid = 0; |
684 | ks->linux_regs = regs; | 676 | ks->linux_regs = regs; |