lkml.org 
[lkml]   [2020]   [Nov]   [18]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    Date
    From
    Subject[patch V4 1/8] 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: Thomas Gleixner <tglx@linutronix.de>
    ---
    V4: New patch
    ---
    include/asm-generic/kmap_size.h | 2 +-
    lib/Kconfig.debug | 8 ++++++++
    mm/highmem.c | 4 ++--
    3 files changed, 11 insertions(+), 3 deletions(-)

    --- a/include/asm-generic/kmap_size.h
    +++ b/include/asm-generic/kmap_size.h
    @@ -3,7 +3,7 @@
    #define _ASM_GENERIC_KMAP_SIZE_H

    /* For debug this provides guard pages between the maps */
    -#ifdef CONFIG_DEBUG_HIGHMEM
    +#ifdef CONFIG_DEBUG_KMAP_LOCAL
    # define KM_MAX_IDX 33
    #else
    # define KM_MAX_IDX 16
    --- a/lib/Kconfig.debug
    +++ b/lib/Kconfig.debug
    @@ -849,9 +849,17 @@ config DEBUG_PER_CPU_MAPS

    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
    bool "Highmem debugging"
    depends on DEBUG_KERNEL && HIGHMEM
    + select DEBUG_KMAP_LOCAL
    help
    This option enables additional error checking for high memory
    systems. Disable for production systems.
    --- a/mm/highmem.c
    +++ b/mm/highmem.c
    @@ -368,10 +368,10 @@ EXPORT_SYMBOL(kunmap_high);
    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
    */
    -#ifdef CONFIG_DEBUG_HIGHMEM
    +#ifdef CONFIG_DEBUG_KMAP_LOCAL
    # define KM_INCR 2
    #else
    # define KM_INCR 1
    \
     
     \ /
      Last update: 2020-11-18 22:00    [W:4.146 / U:0.072 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site