diff options
Diffstat (limited to 'lib')
-rw-r--r-- | lib/Kconfig.debug | 20 | ||||
-rw-r--r-- | lib/dma-debug.c | 4 | ||||
-rw-r--r-- | lib/fault-inject.c | 4 | ||||
-rw-r--r-- | lib/list_debug.c | 6 | ||||
-rw-r--r-- | lib/spinlock_debug.c | 2 |
5 files changed, 29 insertions, 7 deletions
diff --git a/lib/Kconfig.debug b/lib/Kconfig.debug index a42d3ae3964..ff5bdee4716 100644 --- a/lib/Kconfig.debug +++ b/lib/Kconfig.debug | |||
@@ -241,6 +241,26 @@ config BOOTPARAM_SOFTLOCKUP_PANIC_VALUE | |||
241 | default 0 if !BOOTPARAM_SOFTLOCKUP_PANIC | 241 | default 0 if !BOOTPARAM_SOFTLOCKUP_PANIC |
242 | default 1 if BOOTPARAM_SOFTLOCKUP_PANIC | 242 | default 1 if BOOTPARAM_SOFTLOCKUP_PANIC |
243 | 243 | ||
244 | config PANIC_ON_OOPS | ||
245 | bool "Panic on Oops" if EXPERT | ||
246 | default n | ||
247 | help | ||
248 | Say Y here to enable the kernel to panic when it oopses. This | ||
249 | has the same effect as setting oops=panic on the kernel command | ||
250 | line. | ||
251 | |||
252 | This feature is useful to ensure that the kernel does not do | ||
253 | anything erroneous after an oops which could result in data | ||
254 | corruption or other issues. | ||
255 | |||
256 | Say N if unsure. | ||
257 | |||
258 | config PANIC_ON_OOPS_VALUE | ||
259 | int | ||
260 | range 0 1 | ||
261 | default 0 if !PANIC_ON_OOPS | ||
262 | default 1 if PANIC_ON_OOPS | ||
263 | |||
244 | config DETECT_HUNG_TASK | 264 | config DETECT_HUNG_TASK |
245 | bool "Detect Hung Tasks" | 265 | bool "Detect Hung Tasks" |
246 | depends on DEBUG_KERNEL | 266 | depends on DEBUG_KERNEL |
diff --git a/lib/dma-debug.c b/lib/dma-debug.c index 518aea714d2..66ce4148913 100644 --- a/lib/dma-debug.c +++ b/lib/dma-debug.c | |||
@@ -78,7 +78,7 @@ static LIST_HEAD(free_entries); | |||
78 | static DEFINE_SPINLOCK(free_entries_lock); | 78 | static DEFINE_SPINLOCK(free_entries_lock); |
79 | 79 | ||
80 | /* Global disable flag - will be set in case of an error */ | 80 | /* Global disable flag - will be set in case of an error */ |
81 | static bool global_disable __read_mostly; | 81 | static u32 global_disable __read_mostly; |
82 | 82 | ||
83 | /* Global error count */ | 83 | /* Global error count */ |
84 | static u32 error_count; | 84 | static u32 error_count; |
@@ -657,7 +657,7 @@ static int dma_debug_fs_init(void) | |||
657 | 657 | ||
658 | global_disable_dent = debugfs_create_bool("disabled", 0444, | 658 | global_disable_dent = debugfs_create_bool("disabled", 0444, |
659 | dma_debug_dent, | 659 | dma_debug_dent, |
660 | (u32 *)&global_disable); | 660 | &global_disable); |
661 | if (!global_disable_dent) | 661 | if (!global_disable_dent) |
662 | goto out_err; | 662 | goto out_err; |
663 | 663 | ||
diff --git a/lib/fault-inject.c b/lib/fault-inject.c index 6805453c18e..f7210ad6cff 100644 --- a/lib/fault-inject.c +++ b/lib/fault-inject.c | |||
@@ -101,6 +101,10 @@ static inline bool fail_stacktrace(struct fault_attr *attr) | |||
101 | 101 | ||
102 | bool should_fail(struct fault_attr *attr, ssize_t size) | 102 | bool should_fail(struct fault_attr *attr, ssize_t size) |
103 | { | 103 | { |
104 | /* No need to check any other properties if the probability is 0 */ | ||
105 | if (attr->probability == 0) | ||
106 | return false; | ||
107 | |||
104 | if (attr->task_filter && !fail_task(attr, current)) | 108 | if (attr->task_filter && !fail_task(attr, current)) |
105 | return false; | 109 | return false; |
106 | 110 | ||
diff --git a/lib/list_debug.c b/lib/list_debug.c index 23a5e031cd8..c24c2f7e296 100644 --- a/lib/list_debug.c +++ b/lib/list_debug.c | |||
@@ -87,12 +87,10 @@ void __list_add_rcu(struct list_head *new, | |||
87 | struct list_head *prev, struct list_head *next) | 87 | struct list_head *prev, struct list_head *next) |
88 | { | 88 | { |
89 | WARN(next->prev != prev, | 89 | WARN(next->prev != prev, |
90 | "list_add_rcu corruption. next->prev should be " | 90 | "list_add_rcu corruption. next->prev should be prev (%p), but was %p. (next=%p).\n", |
91 | "prev (%p), but was %p. (next=%p).\n", | ||
92 | prev, next->prev, next); | 91 | prev, next->prev, next); |
93 | WARN(prev->next != next, | 92 | WARN(prev->next != next, |
94 | "list_add_rcu corruption. prev->next should be " | 93 | "list_add_rcu corruption. prev->next should be next (%p), but was %p. (prev=%p).\n", |
95 | "next (%p), but was %p. (prev=%p).\n", | ||
96 | next, prev->next, prev); | 94 | next, prev->next, prev); |
97 | new->next = next; | 95 | new->next = next; |
98 | new->prev = prev; | 96 | new->prev = prev; |
diff --git a/lib/spinlock_debug.c b/lib/spinlock_debug.c index d0ec4f3d159..e91fbc23fff 100644 --- a/lib/spinlock_debug.c +++ b/lib/spinlock_debug.c | |||
@@ -118,7 +118,7 @@ static void __spin_lock_debug(raw_spinlock_t *lock) | |||
118 | /* lockup suspected: */ | 118 | /* lockup suspected: */ |
119 | if (print_once) { | 119 | if (print_once) { |
120 | print_once = 0; | 120 | print_once = 0; |
121 | spin_dump(lock, "lockup"); | 121 | spin_dump(lock, "lockup suspected"); |
122 | #ifdef CONFIG_SMP | 122 | #ifdef CONFIG_SMP |
123 | trigger_all_cpu_backtrace(); | 123 | trigger_all_cpu_backtrace(); |
124 | #endif | 124 | #endif |