Commit 6e799cb6 authored by Thomas Gleixner's avatar Thomas Gleixner

mm/highmem: Provide and use CONFIG_DEBUG_KMAP_LOCAL

CONFIG_KMAP_LOCAL can be enabled by x86/32bit even if CONFIG_HIGHMEM is not
enabled for temporary MMIO space mappings.

Provide it as a seperate config option which depends on CONFIG_KMAP_LOCAL
and let CONFIG_DEBUG_HIGHMEM select it.

This won't increase the debug coverage of this significantly but it paves
the way to do so.
Signed-off-by: default avatarThomas Gleixner <tglx@linutronix.de>
Acked-by: default avatarPeter Zijlstra (Intel) <peterz@infradead.org>
Link: https://lore.kernel.org/r/20201118204006.869487226@linutronix.de
parent 13c8da5d
...@@ -3,7 +3,7 @@ ...@@ -3,7 +3,7 @@
#define _ASM_GENERIC_KMAP_SIZE_H #define _ASM_GENERIC_KMAP_SIZE_H
/* For debug this provides guard pages between the maps */ /* For debug this provides guard pages between the maps */
#ifdef CONFIG_DEBUG_HIGHMEM #ifdef CONFIG_DEBUG_KMAP_LOCAL
# define KM_MAX_IDX 33 # define KM_MAX_IDX 33
#else #else
# define KM_MAX_IDX 16 # define KM_MAX_IDX 16
......
...@@ -849,9 +849,17 @@ config DEBUG_PER_CPU_MAPS ...@@ -849,9 +849,17 @@ config DEBUG_PER_CPU_MAPS
Say N if unsure. Say N if unsure.
config DEBUG_KMAP_LOCAL
bool "Debug kmap_local temporary mappings"
depends on DEBUG_KERNEL && KMAP_LOCAL
help
This option enables additional error checking for the kmap_local
infrastructure. Disable for production use.
config DEBUG_HIGHMEM config DEBUG_HIGHMEM
bool "Highmem debugging" bool "Highmem debugging"
depends on DEBUG_KERNEL && HIGHMEM depends on DEBUG_KERNEL && HIGHMEM
select DEBUG_KMAP_LOCAL
help help
This option enables additional error checking for high memory This option enables additional error checking for high memory
systems. Disable for production systems. systems. Disable for production systems.
......
...@@ -368,10 +368,10 @@ EXPORT_SYMBOL(kunmap_high); ...@@ -368,10 +368,10 @@ EXPORT_SYMBOL(kunmap_high);
static DEFINE_PER_CPU(int, __kmap_local_idx); static DEFINE_PER_CPU(int, __kmap_local_idx);
/* /*
* With DEBUG_HIGHMEM the stack depth is doubled and every second * With DEBUG_KMAP_LOCAL the stack depth is doubled and every second
* slot is unused which acts as a guard page * slot is unused which acts as a guard page
*/ */
#ifdef CONFIG_DEBUG_HIGHMEM #ifdef CONFIG_DEBUG_KMAP_LOCAL
# define KM_INCR 2 # define KM_INCR 2
#else #else
# define KM_INCR 1 # define KM_INCR 1
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment