lkml.org 
[lkml]   [2022]   [Aug]   [15]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 5.15 112/779] arch: make TRACE_IRQFLAGS_NMI_SUPPORT generic
    Date
    From: Mark Rutland <mark.rutland@arm.com>

    [ Upstream commit 4510bffb4d0246cdcc1f14c7367c026b807a862d ]

    On most architectures, IRQ flag tracing is disabled in NMI context, and
    architectures need to define and select TRACE_IRQFLAGS_NMI_SUPPORT in
    order to enable this.

    Commit:

    859d069ee1ddd878 ("lockdep: Prepare for NMI IRQ state tracking")

    Permitted IRQ flag tracing in NMI context, allowing lockdep to work in
    NMI context where an architecture had suitable entry logic. At the time,
    most architectures did not have such suitable entry logic, and this broke
    lockdep on such architectures. Thus, this was partially disabled in
    commit:

    ed00495333ccc80f ("locking/lockdep: Fix TRACE_IRQFLAGS vs. NMIs")

    ... with architectures needing to select TRACE_IRQFLAGS_NMI_SUPPORT to
    enable IRQ flag tracing in NMI context.

    Currently TRACE_IRQFLAGS_NMI_SUPPORT is defined under
    arch/x86/Kconfig.debug. Move it to arch/Kconfig so architectures can
    select it without having to provide their own definition.

    Since the regular TRACE_IRQFLAGS_SUPPORT is selected by
    arch/x86/Kconfig, the select of TRACE_IRQFLAGS_NMI_SUPPORT is moved
    there too.

    There should be no functional change as a result of this patch.

    Signed-off-by: Mark Rutland <mark.rutland@arm.com>
    Cc: Catalin Marinas <catalin.marinas@arm.com>
    Cc: Ingo Molnar <mingo@kernel.org>
    Cc: Peter Zijlstra (Intel) <peterz@infradead.org>
    Cc: Thomas Gleixner <tglx@linutronix.de>
    Cc: Will Deacon <will@kernel.org>
    Link: https://lore.kernel.org/r/20220511131733.4074499-2-mark.rutland@arm.com
    Signed-off-by: Will Deacon <will@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>
    ---
    arch/Kconfig | 3 +++
    arch/x86/Kconfig | 1 +
    arch/x86/Kconfig.debug | 3 ---
    3 files changed, 4 insertions(+), 3 deletions(-)

    diff --git a/arch/Kconfig b/arch/Kconfig
    index 191589f26b1a..5987363b41c2 100644
    --- a/arch/Kconfig
    +++ b/arch/Kconfig
    @@ -200,6 +200,9 @@ config HAVE_NMI
    config TRACE_IRQFLAGS_SUPPORT
    bool

    +config TRACE_IRQFLAGS_NMI_SUPPORT
    + bool
    +
    #
    # An arch should select this if it provides all these things:
    #
    diff --git a/arch/x86/Kconfig b/arch/x86/Kconfig
    index fe6981a38795..57f5e881791a 100644
    --- a/arch/x86/Kconfig
    +++ b/arch/x86/Kconfig
    @@ -260,6 +260,7 @@ config X86
    select SYSCTL_EXCEPTION_TRACE
    select THREAD_INFO_IN_TASK
    select TRACE_IRQFLAGS_SUPPORT
    + select TRACE_IRQFLAGS_NMI_SUPPORT
    select USER_STACKTRACE_SUPPORT
    select VIRT_TO_BUS
    select HAVE_ARCH_KCSAN if X86_64
    diff --git a/arch/x86/Kconfig.debug b/arch/x86/Kconfig.debug
    index d3a6f74a94bd..d4d6db4dde22 100644
    --- a/arch/x86/Kconfig.debug
    +++ b/arch/x86/Kconfig.debug
    @@ -1,8 +1,5 @@
    # SPDX-License-Identifier: GPL-2.0

    -config TRACE_IRQFLAGS_NMI_SUPPORT
    - def_bool y
    -
    config EARLY_PRINTK_USB
    bool

    --
    2.35.1


    \
     
     \ /
      Last update: 2022-08-15 20:28    [W:4.057 / U:1.164 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site