Patch "kcsan: Don't expect 64 bits atomic builtins from 32 bits architectures" has been added to the 5.15-stable tree

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



This is a note to let you know that I've just added the patch titled

    kcsan: Don't expect 64 bits atomic builtins from 32 bits architectures

to the 5.15-stable tree which can be found at:
    http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=summary

The filename of the patch is:
     kcsan-don-t-expect-64-bits-atomic-builtins-from-32-b.patch
and it can be found in the queue-5.15 subdirectory.

If you, or anyone else, feels it should not be added to the stable tree,
please let <stable@xxxxxxxxxxxxxxx> know about it.



commit da74e931f0c7aa3acbc530e00affc7c8acbe728f
Author: Christophe Leroy <christophe.leroy@xxxxxxxxxx>
Date:   Fri May 12 17:31:17 2023 +0200

    kcsan: Don't expect 64 bits atomic builtins from 32 bits architectures
    
    [ Upstream commit 353e7300a1db928e427462f2745f9a2cd1625b3d ]
    
    Activating KCSAN on a 32 bits architecture leads to the following
    link-time failure:
    
        LD      .tmp_vmlinux.kallsyms1
      powerpc64-linux-ld: kernel/kcsan/core.o: in function `__tsan_atomic64_load':
      kernel/kcsan/core.c:1273: undefined reference to `__atomic_load_8'
      powerpc64-linux-ld: kernel/kcsan/core.o: in function `__tsan_atomic64_store':
      kernel/kcsan/core.c:1273: undefined reference to `__atomic_store_8'
      powerpc64-linux-ld: kernel/kcsan/core.o: in function `__tsan_atomic64_exchange':
      kernel/kcsan/core.c:1273: undefined reference to `__atomic_exchange_8'
      powerpc64-linux-ld: kernel/kcsan/core.o: in function `__tsan_atomic64_fetch_add':
      kernel/kcsan/core.c:1273: undefined reference to `__atomic_fetch_add_8'
      powerpc64-linux-ld: kernel/kcsan/core.o: in function `__tsan_atomic64_fetch_sub':
      kernel/kcsan/core.c:1273: undefined reference to `__atomic_fetch_sub_8'
      powerpc64-linux-ld: kernel/kcsan/core.o: in function `__tsan_atomic64_fetch_and':
      kernel/kcsan/core.c:1273: undefined reference to `__atomic_fetch_and_8'
      powerpc64-linux-ld: kernel/kcsan/core.o: in function `__tsan_atomic64_fetch_or':
      kernel/kcsan/core.c:1273: undefined reference to `__atomic_fetch_or_8'
      powerpc64-linux-ld: kernel/kcsan/core.o: in function `__tsan_atomic64_fetch_xor':
      kernel/kcsan/core.c:1273: undefined reference to `__atomic_fetch_xor_8'
      powerpc64-linux-ld: kernel/kcsan/core.o: in function `__tsan_atomic64_fetch_nand':
      kernel/kcsan/core.c:1273: undefined reference to `__atomic_fetch_nand_8'
      powerpc64-linux-ld: kernel/kcsan/core.o: in function `__tsan_atomic64_compare_exchange_strong':
      kernel/kcsan/core.c:1273: undefined reference to `__atomic_compare_exchange_8'
      powerpc64-linux-ld: kernel/kcsan/core.o: in function `__tsan_atomic64_compare_exchange_weak':
      kernel/kcsan/core.c:1273: undefined reference to `__atomic_compare_exchange_8'
      powerpc64-linux-ld: kernel/kcsan/core.o: in function `__tsan_atomic64_compare_exchange_val':
      kernel/kcsan/core.c:1273: undefined reference to `__atomic_compare_exchange_8'
    
    32 bits architectures don't have 64 bits atomic builtins. Only
    include DEFINE_TSAN_ATOMIC_OPS(64) on 64 bits architectures.
    
    Fixes: 0f8ad5f2e934 ("kcsan: Add support for atomic builtins")
    Suggested-by: Marco Elver <elver@xxxxxxxxxx>
    Signed-off-by: Christophe Leroy <christophe.leroy@xxxxxxxxxx>
    Reviewed-by: Marco Elver <elver@xxxxxxxxxx>
    Acked-by: Marco Elver <elver@xxxxxxxxxx>
    Signed-off-by: Michael Ellerman <mpe@xxxxxxxxxxxxxx>
    Link: https://msgid.link/d9c6afc28d0855240171a4e0ad9ffcdb9d07fceb.1683892665.git.christophe.leroy@xxxxxxxxxx
    Signed-off-by: Sasha Levin <sashal@xxxxxxxxxx>

diff --git a/kernel/kcsan/core.c b/kernel/kcsan/core.c
index 526510b3791ed..3f3b5e3ca9eb3 100644
--- a/kernel/kcsan/core.c
+++ b/kernel/kcsan/core.c
@@ -1050,7 +1050,9 @@ EXPORT_SYMBOL(__tsan_init);
 DEFINE_TSAN_ATOMIC_OPS(8);
 DEFINE_TSAN_ATOMIC_OPS(16);
 DEFINE_TSAN_ATOMIC_OPS(32);
+#ifdef CONFIG_64BIT
 DEFINE_TSAN_ATOMIC_OPS(64);
+#endif
 
 void __tsan_atomic_thread_fence(int memorder);
 void __tsan_atomic_thread_fence(int memorder)



[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux