summaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
authorAnton Vorontsov <anton.vorontsov@linaro.org>2012-09-24 14:27:50 -0700
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>2012-09-26 13:42:25 -0700
commit5a14fead07bcf4e0acc877a8d9e1d1f40a441153 (patch)
tree7fd90cf9cdd0b734f013df6bb86f34fdd80c5732 /include
parentc5dd553b9fd069892c9e2de734f4f604e280fa7a (diff)
downloadlinux-3.10-5a14fead07bcf4e0acc877a8d9e1d1f40a441153.tar.gz
linux-3.10-5a14fead07bcf4e0acc877a8d9e1d1f40a441153.tar.bz2
linux-3.10-5a14fead07bcf4e0acc877a8d9e1d1f40a441153.zip
kernel/debug: Mask KGDB NMI upon entry
The new arch callback should manage NMIs that usually cause KGDB to enter. That is, not all NMIs should be enabled/disabled, but only those that issue kgdb_handle_exception(). We must mask it as serial-line interrupt can be used as an NMI, so if the original KGDB-entry cause was say a breakpoint, then every input to KDB console will cause KGDB to reenter, which we don't want. Signed-off-by: Anton Vorontsov <anton.vorontsov@linaro.org> Acked-by: Jason Wessel <jason.wessel@windriver.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Diffstat (limited to 'include')
-rw-r--r--include/linux/kgdb.h3
1 files changed, 3 insertions, 0 deletions
diff --git a/include/linux/kgdb.h b/include/linux/kgdb.h
index c4d2fc194ed..7800cce284d 100644
--- a/include/linux/kgdb.h
+++ b/include/linux/kgdb.h
@@ -240,6 +240,7 @@ extern void kgdb_arch_late(void);
* hardware breakpoints.
* @correct_hw_break: Allow an architecture to specify how to correct the
* hardware debug registers.
+ * @enable_nmi: Manage NMI-triggered entry to KGDB
*/
struct kgdb_arch {
unsigned char gdb_bpt_instr[BREAK_INSTR_SIZE];
@@ -252,6 +253,8 @@ struct kgdb_arch {
void (*disable_hw_break)(struct pt_regs *regs);
void (*remove_all_hw_break)(void);
void (*correct_hw_break)(void);
+
+ void (*enable_nmi)(bool on);
};
/**