aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPetr Mladek <pmladek@suse.com>2016-12-14 18:05:52 -0500
committerLinus Torvalds <torvalds@linux-foundation.org>2016-12-14 19:04:08 -0500
commitd1bd8ead126668a2d6c42d97cc3664e95b3fa1dc (patch)
tree39c0cf2d482c762c17a4fe9ce90f72b6ea9424ce
parent2d13bb6494c807bcf3f78af0e96c0b8615a94385 (diff)
kdb: remove unused kdb_event handling
kdb_event state variable is only set but never checked in the kernel code. http://www.spinics.net/lists/kdb/msg01733.html suggests that this variable affected WARN_CONSOLE_UNLOCKED() in the original implementation. But this check never went upstream. The semantic is unclear and racy. The value is updated after the kdb_printf_lock is acquired and after it is released. It should be symmetric at minimum. The value should be manipulated either inside or outside the locked area. Fortunately, it seems that the original function is gone and we could simply remove the state variable. Link: http://lkml.kernel.org/r/1480412276-16690-2-git-send-email-pmladek@suse.com Signed-off-by: Petr Mladek <pmladek@suse.com> Suggested-by: Daniel Thompson <daniel.thompson@linaro.org> Cc: Jason Wessel <jason.wessel@windriver.com> Cc: Peter Zijlstra <peterz@infradead.org> Cc: Sergey Senozhatsky <sergey.senozhatsky@gmail.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
-rw-r--r--include/linux/kdb.h1
-rw-r--r--kernel/debug/kdb/kdb_io.c2
-rw-r--r--kernel/debug/kdb/kdb_main.c1
3 files changed, 0 insertions, 4 deletions
diff --git a/include/linux/kdb.h b/include/linux/kdb.h
index 410decacff8f..eb706188dc23 100644
--- a/include/linux/kdb.h
+++ b/include/linux/kdb.h
@@ -77,7 +77,6 @@ extern int kdb_poll_idx;
77 * number whenever the kernel debugger is entered. 77 * number whenever the kernel debugger is entered.
78 */ 78 */
79extern int kdb_initial_cpu; 79extern int kdb_initial_cpu;
80extern atomic_t kdb_event;
81 80
82/* Types and messages used for dynamically added kdb shell commands */ 81/* Types and messages used for dynamically added kdb shell commands */
83 82
diff --git a/kernel/debug/kdb/kdb_io.c b/kernel/debug/kdb/kdb_io.c
index 98c9011eac78..46f477bebe0c 100644
--- a/kernel/debug/kdb/kdb_io.c
+++ b/kernel/debug/kdb/kdb_io.c
@@ -576,7 +576,6 @@ int vkdb_printf(enum kdb_msgsrc src, const char *fmt, va_list ap)
576 KDB_STATE_SET(PRINTF_LOCK); 576 KDB_STATE_SET(PRINTF_LOCK);
577 spin_lock_irqsave(&kdb_printf_lock, flags); 577 spin_lock_irqsave(&kdb_printf_lock, flags);
578 got_printf_lock = 1; 578 got_printf_lock = 1;
579 atomic_inc(&kdb_event);
580 } else { 579 } else {
581 __acquire(kdb_printf_lock); 580 __acquire(kdb_printf_lock);
582 } 581 }
@@ -851,7 +850,6 @@ kdb_print_out:
851 got_printf_lock = 0; 850 got_printf_lock = 0;
852 spin_unlock_irqrestore(&kdb_printf_lock, flags); 851 spin_unlock_irqrestore(&kdb_printf_lock, flags);
853 KDB_STATE_CLEAR(PRINTF_LOCK); 852 KDB_STATE_CLEAR(PRINTF_LOCK);
854 atomic_dec(&kdb_event);
855 } else { 853 } else {
856 __release(kdb_printf_lock); 854 __release(kdb_printf_lock);
857 } 855 }
diff --git a/kernel/debug/kdb/kdb_main.c b/kernel/debug/kdb/kdb_main.c
index 2a20c0dfdafc..ca183919d302 100644
--- a/kernel/debug/kdb/kdb_main.c
+++ b/kernel/debug/kdb/kdb_main.c
@@ -60,7 +60,6 @@ int kdb_grep_trailing;
60 * Kernel debugger state flags 60 * Kernel debugger state flags
61 */ 61 */
62int kdb_flags; 62int kdb_flags;
63atomic_t kdb_event;
64 63
65/* 64/*
66 * kdb_lock protects updates to kdb_initial_cpu. Used to 65 * kdb_lock protects updates to kdb_initial_cpu. Used to