From: Sasha Levin <sashal@kernel.org>
To: linux-kernel@vger.kernel.org, stable@vger.kernel.org
Cc: Arnd Bergmann <arnd@arndb.de>, Will Deacon <will@kernel.org>,
Catalin Marinas <catalin.marinas@arm.com>,
Sasha Levin <sashal@kernel.org>,
linux-arm-kernel@lists.infradead.org, linux-arch@vger.kernel.org,
clang-built-linux@googlegroups.com
Subject: [PATCH AUTOSEL 5.4 13/26] arm64: make atomic helpers __always_inline
Date: Tue, 19 Jan 2021 20:26:50 -0500 [thread overview]
Message-ID: <20210120012704.770095-13-sashal@kernel.org> (raw)
In-Reply-To: <20210120012704.770095-1-sashal@kernel.org>
From: Arnd Bergmann <arnd@arndb.de>
[ Upstream commit c35a824c31834d947fb99b0c608c1b9f922b4ba0 ]
With UBSAN enabled and building with clang, there are occasionally
warnings like
WARNING: modpost: vmlinux.o(.text+0xc533ec): Section mismatch in reference from the function arch_atomic64_or() to the variable .init.data:numa_nodes_parsed
The function arch_atomic64_or() references
the variable __initdata numa_nodes_parsed.
This is often because arch_atomic64_or lacks a __initdata
annotation or the annotation of numa_nodes_parsed is wrong.
for functions that end up not being inlined as intended but operating
on __initdata variables. Mark these as __always_inline, along with
the corresponding asm-generic wrappers.
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
Acked-by: Will Deacon <will@kernel.org>
Link: https://lore.kernel.org/r/20210108092024.4034860-1-arnd@kernel.org
Signed-off-by: Catalin Marinas <catalin.marinas@arm.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
---
arch/arm64/include/asm/atomic.h | 10 +++++-----
include/asm-generic/bitops/atomic.h | 6 +++---
2 files changed, 8 insertions(+), 8 deletions(-)
diff --git a/arch/arm64/include/asm/atomic.h b/arch/arm64/include/asm/atomic.h
index 9543b5e0534d2..6e0f48ddfc656 100644
--- a/arch/arm64/include/asm/atomic.h
+++ b/arch/arm64/include/asm/atomic.h
@@ -17,7 +17,7 @@
#include <asm/lse.h>
#define ATOMIC_OP(op) \
-static inline void arch_##op(int i, atomic_t *v) \
+static __always_inline void arch_##op(int i, atomic_t *v) \
{ \
__lse_ll_sc_body(op, i, v); \
}
@@ -32,7 +32,7 @@ ATOMIC_OP(atomic_sub)
#undef ATOMIC_OP
#define ATOMIC_FETCH_OP(name, op) \
-static inline int arch_##op##name(int i, atomic_t *v) \
+static __always_inline int arch_##op##name(int i, atomic_t *v) \
{ \
return __lse_ll_sc_body(op##name, i, v); \
}
@@ -56,7 +56,7 @@ ATOMIC_FETCH_OPS(atomic_sub_return)
#undef ATOMIC_FETCH_OPS
#define ATOMIC64_OP(op) \
-static inline void arch_##op(long i, atomic64_t *v) \
+static __always_inline void arch_##op(long i, atomic64_t *v) \
{ \
__lse_ll_sc_body(op, i, v); \
}
@@ -71,7 +71,7 @@ ATOMIC64_OP(atomic64_sub)
#undef ATOMIC64_OP
#define ATOMIC64_FETCH_OP(name, op) \
-static inline long arch_##op##name(long i, atomic64_t *v) \
+static __always_inline long arch_##op##name(long i, atomic64_t *v) \
{ \
return __lse_ll_sc_body(op##name, i, v); \
}
@@ -94,7 +94,7 @@ ATOMIC64_FETCH_OPS(atomic64_sub_return)
#undef ATOMIC64_FETCH_OP
#undef ATOMIC64_FETCH_OPS
-static inline long arch_atomic64_dec_if_positive(atomic64_t *v)
+static __always_inline long arch_atomic64_dec_if_positive(atomic64_t *v)
{
return __lse_ll_sc_body(atomic64_dec_if_positive, v);
}
diff --git a/include/asm-generic/bitops/atomic.h b/include/asm-generic/bitops/atomic.h
index dd90c9792909d..0e7316a86240b 100644
--- a/include/asm-generic/bitops/atomic.h
+++ b/include/asm-generic/bitops/atomic.h
@@ -11,19 +11,19 @@
* See Documentation/atomic_bitops.txt for details.
*/
-static inline void set_bit(unsigned int nr, volatile unsigned long *p)
+static __always_inline void set_bit(unsigned int nr, volatile unsigned long *p)
{
p += BIT_WORD(nr);
atomic_long_or(BIT_MASK(nr), (atomic_long_t *)p);
}
-static inline void clear_bit(unsigned int nr, volatile unsigned long *p)
+static __always_inline void clear_bit(unsigned int nr, volatile unsigned long *p)
{
p += BIT_WORD(nr);
atomic_long_andnot(BIT_MASK(nr), (atomic_long_t *)p);
}
-static inline void change_bit(unsigned int nr, volatile unsigned long *p)
+static __always_inline void change_bit(unsigned int nr, volatile unsigned long *p)
{
p += BIT_WORD(nr);
atomic_long_xor(BIT_MASK(nr), (atomic_long_t *)p);
--
2.27.0
next prev parent reply other threads:[~2021-01-20 2:51 UTC|newest]
Thread overview: 28+ messages / expand[flat|nested] mbox.gz Atom feed top
2021-01-20 1:26 [PATCH AUTOSEL 5.4 01/26] ASoC: Intel: haswell: Add missing pm_ops Sasha Levin
2021-01-20 1:26 ` [PATCH AUTOSEL 5.4 02/26] HID: multitouch: Enable multi-input for Synaptics pointstick/touchpad device Sasha Levin
2021-01-20 1:26 ` [PATCH AUTOSEL 5.4 03/26] dm integrity: select CRYPTO_SKCIPHER Sasha Levin
2021-01-20 5:47 ` [dm-devel] " Eric Biggers
2021-02-05 0:28 ` Sasha Levin
2021-01-20 1:26 ` [PATCH AUTOSEL 5.4 04/26] scsi: ufs: Correct the LUN used in eh_device_reset_handler() callback Sasha Levin
2021-01-20 1:26 ` [PATCH AUTOSEL 5.4 05/26] scsi: qedi: Correct max length of CHAP secret Sasha Levin
2021-01-20 1:26 ` [PATCH AUTOSEL 5.4 06/26] scsi: sd: Suppress spurious errors when WRITE SAME is being disabled Sasha Levin
2021-01-20 1:26 ` [PATCH AUTOSEL 5.4 07/26] riscv: Fix kernel time_init() Sasha Levin
2021-01-20 1:26 ` [PATCH AUTOSEL 5.4 08/26] riscv: Fix sifive serial driver Sasha Levin
2021-01-20 1:26 ` [PATCH AUTOSEL 5.4 09/26] HID: logitech-dj: add the G602 receiver Sasha Levin
2021-01-20 1:26 ` [PATCH AUTOSEL 5.4 10/26] HID: Ignore battery for Elan touchscreen on ASUS UX550 Sasha Levin
2021-01-20 1:26 ` [PATCH AUTOSEL 5.4 11/26] clk: tegra30: Add hda clock default rates to clock driver Sasha Levin
2021-01-20 1:26 ` [PATCH AUTOSEL 5.4 12/26] r8152: Add Lenovo Powered USB-C Travel Hub Sasha Levin
2021-01-20 1:26 ` Sasha Levin [this message]
2021-01-20 1:26 ` [PATCH AUTOSEL 5.4 14/26] xen: Fix event channel callback via INTX/GSI Sasha Levin
2021-01-20 1:26 ` [PATCH AUTOSEL 5.4 15/26] x86/xen: Add xen_no_vector_callback option to test PCI INTX delivery Sasha Levin
2021-01-20 1:26 ` [PATCH AUTOSEL 5.4 16/26] net: stmmac: Fixed mtu channged by cache aligned Sasha Levin
2021-01-20 1:26 ` [PATCH AUTOSEL 5.4 17/26] dts: phy: fix missing mdio device and probe failure of vsc8541-01 device Sasha Levin
2021-01-20 1:26 ` [PATCH AUTOSEL 5.4 18/26] dts: phy: add GPIO number and active state used for phy reset Sasha Levin
2021-01-20 1:26 ` [PATCH AUTOSEL 5.4 19/26] riscv: defconfig: enable gpio support for HiFive Unleashed Sasha Levin
2021-01-20 1:26 ` [PATCH AUTOSEL 5.4 20/26] drm/amdgpu/psp: fix psp gfx ctrl cmds Sasha Levin
2021-01-20 1:26 ` [PATCH AUTOSEL 5.4 21/26] drm/amd/display: Fix to be able to stop crc calculation Sasha Levin
2021-01-20 1:26 ` [PATCH AUTOSEL 5.4 22/26] drm/nouveau/bios: fix issue shadowing expansion ROMs Sasha Levin
2021-01-20 1:27 ` [PATCH AUTOSEL 5.4 23/26] drm/nouveau/privring: ack interrupts the same way as RM Sasha Levin
2021-01-20 1:27 ` [PATCH AUTOSEL 5.4 24/26] drm/nouveau/i2c/gm200: increase width of aux semaphore owner fields Sasha Levin
2021-01-20 1:27 ` [PATCH AUTOSEL 5.4 25/26] drm/nouveau/mmu: fix vram heap sizing Sasha Levin
2021-01-20 1:27 ` [PATCH AUTOSEL 5.4 26/26] drm/nouveau/kms/nv50-: fix case where notifier buffer is at offset 0 Sasha Levin
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20210120012704.770095-13-sashal@kernel.org \
--to=sashal@kernel.org \
--cc=arnd@arndb.de \
--cc=catalin.marinas@arm.com \
--cc=clang-built-linux@googlegroups.com \
--cc=linux-arch@vger.kernel.org \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=linux-kernel@vger.kernel.org \
--cc=stable@vger.kernel.org \
--cc=will@kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox