lkml.org 
[lkml]   [2021]   [May]   [25]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH v2 01/33] locking/atomic: make ARCH_ATOMIC a Kconfig symbol
    Date
    Subsequent patches will move architectures over to the ARCH_ATOMIC API,
    after preparing the asm-generic atomic implementations to function with
    or without ARCH_ATOMIC.

    As some architectures use the asm-generic implementations exclusively
    (and don't have a local atomic.h), and to avoid the risk that
    ARCH_ATOMIC isn't defined in some cases we expect, let's make the
    ARCH_ATOMIC macro a Kconfig symbol instead, so that we can guarantee it
    is consistently available where needed.

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

    Signed-off-by: Mark Rutland <mark.rutland@arm.com>
    Cc: Boqun Feng <boqun.feng@gmail.com>
    Cc: Peter Zijlstra <peterz@infradead.org>
    Cc: Will Deacon <will@kernel.org>
    ---
    arch/Kconfig | 3 +++
    arch/arm64/Kconfig | 1 +
    arch/arm64/include/asm/atomic.h | 2 --
    arch/s390/Kconfig | 1 +
    arch/s390/include/asm/atomic.h | 2 --
    arch/um/Kconfig | 1 +
    arch/x86/Kconfig | 1 +
    arch/x86/include/asm/atomic.h | 2 --
    include/linux/atomic.h | 2 +-
    9 files changed, 8 insertions(+), 7 deletions(-)

    diff --git a/arch/Kconfig b/arch/Kconfig
    index c45b770d3579..3fb3b12d4a95 100644
    --- a/arch/Kconfig
    +++ b/arch/Kconfig
    @@ -11,6 +11,9 @@ source "arch/$(SRCARCH)/Kconfig"

    menu "General architecture-dependent options"

    +config ARCH_ATOMIC
    + bool
    +
    config CRASH_CORE
    bool

    diff --git a/arch/arm64/Kconfig b/arch/arm64/Kconfig
    index 9f1d8566bbf9..62ab429d1f42 100644
    --- a/arch/arm64/Kconfig
    +++ b/arch/arm64/Kconfig
    @@ -9,6 +9,7 @@ config ARM64
    select ACPI_MCFG if (ACPI && PCI)
    select ACPI_SPCR_TABLE if ACPI
    select ACPI_PPTT if ACPI
    + select ARCH_ATOMIC
    select ARCH_HAS_DEBUG_WX
    select ARCH_BINFMT_ELF_STATE
    select ARCH_ENABLE_HUGEPAGE_MIGRATION if HUGETLB_PAGE && MIGRATION
    diff --git a/arch/arm64/include/asm/atomic.h b/arch/arm64/include/asm/atomic.h
    index b56a4b2bc248..c9979273d389 100644
    --- a/arch/arm64/include/asm/atomic.h
    +++ b/arch/arm64/include/asm/atomic.h
    @@ -223,6 +223,4 @@ static __always_inline long arch_atomic64_dec_if_positive(atomic64_t *v)

    #define arch_atomic64_dec_if_positive arch_atomic64_dec_if_positive

    -#define ARCH_ATOMIC
    -
    #endif /* __ASM_ATOMIC_H */
    diff --git a/arch/s390/Kconfig b/arch/s390/Kconfig
    index b4c7c34069f8..85374a36c69e 100644
    --- a/arch/s390/Kconfig
    +++ b/arch/s390/Kconfig
    @@ -58,6 +58,7 @@ config S390
    # Note: keep this list sorted alphabetically
    #
    imply IMA_SECURE_AND_OR_TRUSTED_BOOT
    + select ARCH_ATOMIC
    select ARCH_32BIT_USTAT_F_TINODE
    select ARCH_BINFMT_ELF_STATE
    select ARCH_ENABLE_MEMORY_HOTPLUG if SPARSEMEM
    diff --git a/arch/s390/include/asm/atomic.h b/arch/s390/include/asm/atomic.h
    index 7c93c6573524..7138d189cc42 100644
    --- a/arch/s390/include/asm/atomic.h
    +++ b/arch/s390/include/asm/atomic.h
    @@ -147,6 +147,4 @@ ATOMIC64_OPS(xor)
    #define arch_atomic64_fetch_sub(_i, _v) arch_atomic64_fetch_add(-(s64)(_i), _v)
    #define arch_atomic64_sub(_i, _v) arch_atomic64_add(-(s64)(_i), _v)

    -#define ARCH_ATOMIC
    -
    #endif /* __ARCH_S390_ATOMIC__ */
    diff --git a/arch/um/Kconfig b/arch/um/Kconfig
    index 57cfd9a1c082..4370a9521ea4 100644
    --- a/arch/um/Kconfig
    +++ b/arch/um/Kconfig
    @@ -5,6 +5,7 @@ menu "UML-specific options"
    config UML
    bool
    default y
    + select ARCH_ATOMIC
    select ARCH_EPHEMERAL_INODES
    select ARCH_HAS_KCOV
    select ARCH_NO_PREEMPT
    diff --git a/arch/x86/Kconfig b/arch/x86/Kconfig
    index 0045e1b44190..11a27563033d 100644
    --- a/arch/x86/Kconfig
    +++ b/arch/x86/Kconfig
    @@ -58,6 +58,7 @@ config X86
    #
    select ACPI_LEGACY_TABLES_LOOKUP if ACPI
    select ACPI_SYSTEM_POWER_STATES_SUPPORT if ACPI
    + select ARCH_ATOMIC
    select ARCH_32BIT_OFF_T if X86_32
    select ARCH_CLOCKSOURCE_INIT
    select ARCH_ENABLE_HUGEPAGE_MIGRATION if X86_64 && HUGETLB_PAGE && MIGRATION
    diff --git a/arch/x86/include/asm/atomic.h b/arch/x86/include/asm/atomic.h
    index f732741ad7c7..5e754e895767 100644
    --- a/arch/x86/include/asm/atomic.h
    +++ b/arch/x86/include/asm/atomic.h
    @@ -269,6 +269,4 @@ static __always_inline int arch_atomic_fetch_xor(int i, atomic_t *v)
    # include <asm/atomic64_64.h>
    #endif

    -#define ARCH_ATOMIC
    -
    #endif /* _ASM_X86_ATOMIC_H */
    diff --git a/include/linux/atomic.h b/include/linux/atomic.h
    index 571a11008ab5..4f8d83f9e480 100644
    --- a/include/linux/atomic.h
    +++ b/include/linux/atomic.h
    @@ -77,7 +77,7 @@
    __ret; \
    })

    -#ifdef ARCH_ATOMIC
    +#ifdef CONFIG_ARCH_ATOMIC
    #include <linux/atomic-arch-fallback.h>
    #include <asm-generic/atomic-instrumented.h>
    #else
    --
    2.11.0
    \
     
     \ /
      Last update: 2021-05-25 16:03    [W:4.213 / U:0.324 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site