From 8c97fea74f192801476c01895011b4614eee28ba Mon Sep 17 00:00:00 2001 From: Syed Rameez Mustafa Date: Mon, 15 Jul 2013 11:52:09 -0700 Subject: [PATCH] kernel/lib: add additional debug capabilities for data corruption Data corruptions in the kernel often end up in system crashes that are easier to debug closer to the time of detection. Specifically, if we do not panic immediately after lock or list corruptions have been detected, the problem context is lost in the ensuing system mayhem. Add support for BUG_ON immediately after such corruptions are detected. The CONFIG option controls the enabling/disabling of the feature. Change-Id: I9b2eb62da506a13007acff63e85e9515145909ff Signed-off-by: Syed Rameez Mustafa Signed-off-by: Patrick Daly Signed-off-by: Isaac J. Manjarres --- include/linux/bug.h | 5 +++++ lib/Kconfig.debug | 9 +++++++++ 2 files changed, 14 insertions(+) diff --git a/include/linux/bug.h b/include/linux/bug.h index f639bd0122f3..6fb7f2991ef8 100644 --- a/include/linux/bug.h +++ b/include/linux/bug.h @@ -81,4 +81,9 @@ static inline __must_check bool check_data_corruption(bool v) { return v; } corruption; \ })) +#ifdef CONFIG_PANIC_ON_DATA_CORRUPTION +#define PANIC_CORRUPTION 1 +#else +#define PANIC_CORRUPTION 0 +#endif /* CONFIG_PANIC_ON_DATA_CORRUPTION */ #endif /* _LINUX_BUG_H */ diff --git a/lib/Kconfig.debug b/lib/Kconfig.debug index 60807fadf343..dfe0cfebdc09 100644 --- a/lib/Kconfig.debug +++ b/lib/Kconfig.debug @@ -2134,6 +2134,15 @@ config BUG_ON_DATA_CORRUPTION If unsure, say N. +config PANIC_ON_DATA_CORRUPTION + bool "Cause a Kernel Panic When Data Corruption is detected" + help + Select this option to upgrade warnings for potentially + recoverable data corruption scenarios to system-halting panics, + for easier detection and debug. + If we do not panic immediately after corruptions have been detected, + the problem context is lost in the ensuing system mayhem. + source "samples/Kconfig" source "lib/Kconfig.kgdb"