mm,kdb,kgdb: Add a debug reference for the kdb kmap usage
authorJason Wessel <jason.wessel@windriver.com>
Thu, 5 Aug 2010 14:22:24 +0000 (09:22 -0500)
committerJason Wessel <jason.wessel@windriver.com>
Thu, 5 Aug 2010 14:22:24 +0000 (09:22 -0500)
The kdb kmap should never get used outside of the kernel debugger
exception context.

Signed-off-by: Jason Wessel<jason.wessel@windriver.com>
CC: Andrew Morton <akpm@linux-foundation.org>
CC: Ingo Molnar <mingo@elte.hu>
CC: linux-mm@kvack.org
mm/highmem.c

index 66baa20f78f5a4265f16ebf6bb0b7d131bf80684..7a0aa1be4993521f7d55da731b3f69f8a59ea7c7 100644 (file)
@@ -26,6 +26,7 @@
 #include <linux/init.h>
 #include <linux/hash.h>
 #include <linux/highmem.h>
+#include <linux/kgdb.h>
 #include <asm/tlbflush.h>
 
 /*
@@ -470,6 +471,12 @@ void debug_kmap_atomic(enum km_type type)
                        warn_count--;
                }
        }
+#ifdef CONFIG_KGDB_KDB
+       if (unlikely(type == KM_KDB && atomic_read(&kgdb_active) == -1)) {
+               WARN_ON(1);
+               warn_count--;
+       }
+#endif /* CONFIG_KGDB_KDB */
 }
 
 #endif