diff options
Diffstat (limited to 'kernel/debug')
| -rw-r--r-- | kernel/debug/debug_core.c | 16 |
1 files changed, 16 insertions, 0 deletions
diff --git a/kernel/debug/debug_core.c b/kernel/debug/debug_core.c index 64b5588c9638..5cb7cd1de10c 100644 --- a/kernel/debug/debug_core.c +++ b/kernel/debug/debug_core.c | |||
| @@ -78,6 +78,8 @@ static DEFINE_SPINLOCK(kgdb_registration_lock); | |||
| 78 | static int kgdb_con_registered; | 78 | static int kgdb_con_registered; |
| 79 | /* determine if kgdb console output should be used */ | 79 | /* determine if kgdb console output should be used */ |
| 80 | static int kgdb_use_con; | 80 | static int kgdb_use_con; |
| 81 | /* Flag for alternate operations for early debugging */ | ||
| 82 | bool dbg_is_early = true; | ||
| 81 | /* Next cpu to become the master debug core */ | 83 | /* Next cpu to become the master debug core */ |
| 82 | int dbg_switch_cpu; | 84 | int dbg_switch_cpu; |
| 83 | 85 | ||
| @@ -777,11 +779,25 @@ static struct notifier_block kgdb_panic_event_nb = { | |||
| 777 | .priority = INT_MAX, | 779 | .priority = INT_MAX, |
| 778 | }; | 780 | }; |
| 779 | 781 | ||
| 782 | void __weak kgdb_arch_late(void) | ||
| 783 | { | ||
| 784 | } | ||
| 785 | |||
| 786 | void __init dbg_late_init(void) | ||
| 787 | { | ||
| 788 | dbg_is_early = false; | ||
| 789 | if (kgdb_io_module_registered) | ||
| 790 | kgdb_arch_late(); | ||
| 791 | kdb_init(KDB_INIT_FULL); | ||
| 792 | } | ||
| 793 | |||
| 780 | static void kgdb_register_callbacks(void) | 794 | static void kgdb_register_callbacks(void) |
| 781 | { | 795 | { |
| 782 | if (!kgdb_io_module_registered) { | 796 | if (!kgdb_io_module_registered) { |
| 783 | kgdb_io_module_registered = 1; | 797 | kgdb_io_module_registered = 1; |
| 784 | kgdb_arch_init(); | 798 | kgdb_arch_init(); |
| 799 | if (!dbg_is_early) | ||
| 800 | kgdb_arch_late(); | ||
| 785 | atomic_notifier_chain_register(&panic_notifier_list, | 801 | atomic_notifier_chain_register(&panic_notifier_list, |
| 786 | &kgdb_panic_event_nb); | 802 | &kgdb_panic_event_nb); |
| 787 | #ifdef CONFIG_MAGIC_SYSRQ | 803 | #ifdef CONFIG_MAGIC_SYSRQ |
