mirror-linux/arch/s390/include/asm
Heiko Carstens 6166caf3bb s390/bitops: Disable arch_test_bit() optimization for PROFILE_ALL_BRANCHES
With PROFILE_ALL_BRANCHES enabled gcc sometimes fails to handle
__builtin_constant_p() correctly:

   In function 'arch_test_bit',
       inlined from 'node_state' at include/linux/nodemask.h:423:9,
       inlined from 'warn_if_node_offline' at include/linux/gfp.h:252:2,
       inlined from '__alloc_pages_node_noprof' at include/linux/gfp.h:267:2,
       inlined from 'alloc_pages_node_noprof' at include/linux/gfp.h:296:9,
       inlined from 'vm_area_alloc_pages.constprop' at mm/vmalloc.c:3591:11:
>> arch/s390/include/asm/bitops.h:60:17: warning: 'asm' operand 2 probably does not match constraints
      60 |                 asm volatile(
         |                 ^~~
>> arch/s390/include/asm/bitops.h:60:17: error: impossible constraint in 'asm'

Therefore disable the optimization for this case. This is similar to
commit 63678eecec ("s390/preempt: disable __preempt_count_add()
optimization for PROFILE_ALL_BRANCHES")

Fixes: b2bc1b1a77 ("s390/bitops: Provide optimized arch_test_bit()")
Reported-by: kernel test robot <lkp@intel.com>
Closes: https://lore.kernel.org/oe-kbuild-all/202502091912.xL2xTCGw-lkp@intel.com/
Acked-by: Vasily Gorbik <gor@linux.ibm.com>
Signed-off-by: Heiko Carstens <hca@linux.ibm.com>
Signed-off-by: Vasily Gorbik <gor@linux.ibm.com>
2025-02-11 19:35:08 +01:00
..
trace s390/hiperdispatch: Add trace events 2024-08-29 22:56:35 +02:00
vdso vdso: Rename struct arch_vdso_data to arch_vdso_time_data 2024-11-02 12:37:36 +01:00
Kbuild arch, mm: move definition of node_data to generic code 2024-09-03 21:15:28 -07:00
abs_lowcore.h s390/abs_lowcore: Include linux/smp.h for get_cpu() and put_cpu() 2024-12-15 16:19:04 +01:00
access-regs.h s390/acrs: cleanup access register handling 2024-02-12 15:03:33 +01:00
airq.h s390/airq: remove lsi_mask from airq_struct 2023-08-30 11:03:28 +02:00
alternative.h s390/alternatives: Remove ALT_FACILITY_EARLY 2024-09-13 17:28:36 +02:00
ap.h s390/chsc: use notifier for AP configuration changes 2024-04-09 17:29:55 +02:00
appldata.h s390/appldata: fix virtual vs physical address confusion 2024-02-09 13:58:13 +01:00
arch_hweight.h s390: Use MARCH_HAS_*_FEATURES defines 2024-09-07 17:12:42 +02:00
archrandom.h
asm-const.h
asm-extable.h s390/uaccess: Replace EX_TABLE_UA_LOAD_MEM exception handling 2025-01-26 17:24:06 +01:00
asm-prototypes.h s390/expoline: Make modules use kernel expolines 2024-04-17 13:38:03 +02:00
asm.h s390: Rename GCC_ASM_FLAG_OUTPUT_BROKEN to CC_ASM_FLAG_OUTPUT_BROKEN 2025-01-26 17:24:04 +01:00
atomic.h s390/atomic: Provide arch_atomic_*_and_test() implementations 2024-12-15 16:19:03 +01:00
atomic_ops.h s390/atomic: Provide arch_atomic_*_and_test() implementations 2024-12-15 16:19:03 +01:00
barrier.h s390: Use MARCH_HAS_*_FEATURES defines 2024-09-07 17:12:42 +02:00
bitops.h s390/bitops: Disable arch_test_bit() optimization for PROFILE_ALL_BRANCHES 2025-02-11 19:35:08 +01:00
boot_data.h s390/boot: Add timestamps to early boot messages 2025-01-26 17:24:02 +01:00
bug.h s390/bug: remove entry size from __bug_table section 2024-02-14 13:50:53 +01:00
cache.h
ccwdev.h driver core: have match() callback in struct bus_type take a const * 2024-07-03 15:16:54 +02:00
ccwgroup.h
checksum.h s390: Remove superfluous new lines from inline assemblies 2024-12-15 16:19:03 +01:00
chpid.h
chsc.h s390/chsc: use notifier for AP configuration changes 2024-04-09 17:29:55 +02:00
cio.h s390/virtio_ccw: use DMA handle from DMA API 2024-03-13 09:23:46 +01:00
clocksource.h
clp.h
cmb.h
cmpxchg.h s390/cmpxchg: Provide arch_try_cmpxchg128() 2024-11-12 14:01:28 +01:00
compat.h s390/uapi: cover statfs padding by growing f_spare 2023-05-17 15:20:17 +02:00
cpacf.h s390/crypto: Add hardware acceleration for full AES-XTS mode 2024-10-29 11:17:19 +01:00
cpcmd.h
cpu.h
cpu_mf-insn.h
cpu_mf.h s390/cpu_mf: Convert to use flag output macros 2024-11-13 14:31:32 +01:00
cpufeature.h
cputime.h
crw.h
css_chars.h s390/qdio: Rename feature flag aif_osa to aif_qdio 2025-01-03 11:00:53 +01:00
ctlreg.h s390/wti: Introduce infrastructure for warning track interrupt 2024-08-29 22:56:34 +02:00
current.h s390: Replace S390_lowcore by get_lowcore() 2024-06-18 17:01:33 +02:00
dat-bits.h s390/kvm: Move bitfields for dat tables 2024-07-10 19:50:45 +02:00
debug.h s390/pci: Add pci_msg debug view to PCI report 2024-12-16 16:14:27 +01:00
delay.h
diag.h s390/diag: Add memory topology information via diag310 2025-01-15 13:59:08 +01:00
dis.h
dma-types.h s390/mm: provide simple ARCH_HAS_DEBUG_VIRTUAL support 2024-03-13 09:23:49 +01:00
dma.h s390/mm: fix MAX_DMA_ADDRESS physical vs virtual confusion 2023-09-05 20:12:51 +02:00
dwarf.h s390/vdso: Add CFI for RA register to asm macro vdso_func 2024-04-26 16:22:38 +02:00
eadm.h s390/cio: use bitwise types to allow for type checking 2024-03-13 09:23:46 +01:00
ebcdic.h s390/ebcdic: Fix length decrement in codepage_convert() 2025-01-13 09:50:18 +01:00
elf.h s390/hwcaps: Add documentation for HWCAP flags 2024-07-02 10:17:16 +02:00
entry-common.h randomize_kstack: Remove non-functional per-arch entropy filtering 2024-06-28 08:54:56 -07:00
exec.h
extable.h
extmem.h s390/boot: Consider DCSS segments on memory layout setup 2024-04-17 13:37:59 +02:00
facility.h s390/facilities: Fix warning about shadow of global variable 2024-10-10 15:32:43 +02:00
fault.h s390/mm: move translation-exception identification structure to fault.h 2023-10-23 18:21:22 +02:00
fcx.h s390/cio: use bitwise types to allow for type checking 2024-03-13 09:23:46 +01:00
fprobe.h fprobe: Add fprobe_header encoding feature 2024-12-26 10:50:05 -05:00
fpu-insn-asm.h s390/vdso: Wire up getrandom() vdso implementation 2024-09-13 20:57:31 +02:00
fpu-insn.h s390/fpu: Use CONFIG_CC_HAS_ASM_AOR_FORMAT_FLAGS instead of CONFIG_CC_IS_CLANG 2025-01-26 17:24:05 +01:00
fpu-types.h s390/checksum: provide vector register variant of csum_partial() 2024-02-16 14:30:17 +01:00
fpu.h s390/fpu: limit save and restore to used registers 2024-02-16 14:30:16 +01:00
ftrace.h s390/tracing: Define ftrace_get_symaddr() for s390 2025-01-29 15:12:40 +01:00
ftrace.lds.h
futex.h s390/futex: Avoid KMSAN instrumention for user pointers 2025-01-26 17:24:08 +01:00
gmap.h KVM: s390: move gmap_shadow_pgt_lookup() into kvm 2025-01-31 12:03:53 +01:00
hardirq.h s390: Replace S390_lowcore by get_lowcore() 2024-06-18 17:01:33 +02:00
hiperdispatch.h s390/hiperdispatch: Introduce hiperdispatch 2024-08-29 22:56:35 +02:00
hugetlb.h s390/mm/hugetlbfs: Remove huge_pte_none() / huge_pte_none_mostly() 2024-12-15 23:33:04 +01:00
hw_irq.h
idals.h s390/cio,idal: fix virtual vs physical address confusion 2024-03-13 09:23:47 +01:00
idle.h
io.h fs/proc/kcore.c: allow translation of physical memory addresses 2024-10-09 12:47:19 -07:00
ipl.h
irq.h s390/wti: Introduce infrastructure for warning track interrupt 2024-08-29 22:56:34 +02:00
irq_work.h arch: consolidate arch_irq_work_raise prototypes 2023-11-23 11:32:29 +01:00
irqflags.h s390/irqflags: do not instrument arch_local_irq_*() with KMSAN 2024-07-03 19:30:25 -07:00
isc.h
itcw.h
jump_label.h work around gcc bugs with 'asm goto' with outputs 2024-02-09 15:57:48 -08:00
kasan.h s390/kasan: move shadow mapping to decompressor 2023-03-20 11:02:51 +01:00
kdebug.h
kexec.h s390/kdump: Provide is_kdump_kernel() implementation 2024-10-25 16:03:23 +02:00
kfence.h s390/mm: make virt_to_pfn() a static inline 2023-08-16 15:13:03 +02:00
kmsan.h s390/kmsan: Fix merge conflict with get_lowcore() introduction 2024-07-23 16:01:51 +02:00
kprobes.h kprobes: unify kprobes_exceptions_nofify() prototypes 2023-11-10 19:59:05 +09:00
kvm_host.h KVM: s390: fake memslot for ucontrol VMs 2025-01-31 12:03:52 +01:00
kvm_para.h
linkage.h s390: make use of CONFIG_FUNCTION_ALIGNMENT 2023-03-20 11:12:46 +01:00
lowcore.h s390: Remove gmap pointer from lowcore 2024-10-29 11:49:19 +01:00
maccess.h s390/mm: define Real Memory Copy size and mask macros 2023-08-16 15:13:02 +02:00
march.h s390: Provide MARCH_HAS_*_FEATURES defines 2024-09-07 17:12:42 +02:00
mem_encrypt.h
mmu.h s390/mm: Re-enable the shared zeropage for !PV and !skeys KVM guests 2024-04-18 15:02:53 +02:00
mmu_context.h s390: Replace S390_lowcore by get_lowcore() 2024-06-18 17:01:33 +02:00
module.h s390/module: Provide find_section() helper 2024-09-13 17:28:36 +02:00
msi.h
nmi.h s390/mcck: cleanup user process termination path 2023-02-28 13:19:05 +01:00
nospec-branch.h s390/nospec: Push down alternative handling 2024-07-23 16:02:31 +02:00
nospec-insn.h s390/expoline: Make modules use kernel expolines 2024-04-17 13:38:03 +02:00
numa.h
os_info.h s390/os_info: Fix array size in struct os_info 2024-04-29 17:33:29 +02:00
page-states.h s390: Remove __bootdata annotations from declarations 2024-12-15 16:19:04 +01:00
page.h s390: Optimize __pa/__va when RANDOMIZE_IDENTITY_BASE is off 2025-01-26 17:24:03 +01:00
pai.h s390/pai: Convert to use flag output macros 2024-11-13 14:31:32 +01:00
pci.h IOMMU Updates for Linux v6.13: 2024-11-22 19:55:10 -08:00
pci_clp.h s390/pci: Expose FIDPARM attribute in sysfs 2024-10-10 15:32:44 +02:00
pci_debug.h
pci_dma.h s390/pci: Use dma-iommu layer 2023-10-02 08:43:00 +02:00
pci_insn.h
pci_io.h s390/pci: Align prototypes of zpci IO memcpy functions 2024-10-16 11:33:06 +02:00
percpu.h s390: Use MARCH_HAS_*_FEATURES defines 2024-09-07 17:12:42 +02:00
perf_event.h Performance events changes for v6.13: 2024-11-19 13:34:06 -08:00
pfault.h s390/pfault: cleanup inline assemblies 2023-07-29 14:57:18 +02:00
pgalloc.h mm: introduce ctor/dtor at PGD level 2025-01-25 20:22:24 -08:00
pgtable.h KVM: s390: remove the last user of page->index 2025-01-31 12:03:53 +01:00
physmem_info.h s390/boot: Add physmem tracking debug support 2025-01-26 17:24:02 +01:00
pkey.h s390/pkey: Rework and split PKEY kernel module code 2024-08-29 22:56:33 +02:00
pnet.h
preempt.h s390/preempt: Optimize __preempt_count_dec_and_test() 2024-12-15 16:19:03 +01:00
processor.h s390/stackleak: Use exrl instead of ex in __stackleak_poison() 2025-01-13 09:50:17 +01:00
ptrace.h s390/entry: Remove __GMAP_ASCE and use _PIF_GUEST_FAULT again 2024-10-29 11:49:18 +01:00
purgatory.h
qdio.h s390/cio: use bitwise types to allow for type checking 2024-03-13 09:23:46 +01:00
runtime-const.h s390: Add runtime constant support 2024-07-23 15:54:58 +02:00
runtime_instr.h
rwonce.h
schid.h
sclp.h s390/sclp: Initialize sclp subsystem via arch_cpu_finalize_init() 2025-01-28 17:38:46 +01:00
scsw.h s390/cio: use bitwise types to allow for type checking 2024-03-13 09:23:46 +01:00
seccomp.h
sections.h s390/amode31: change type of __samode31, __eamode31, etc 2023-08-30 11:03:27 +02:00
set_memory.h - The series "zram: optimal post-processing target selection" from 2024-11-23 09:58:07 -08:00
setup.h s390/setup: Recognize sequential instruction fetching facility 2024-08-29 22:56:34 +02:00
signal.h
sigp.h s390/smp: Convert to use flag output macros 2024-11-13 14:31:32 +01:00
smp.h s390/smp: Add cpu capacities 2024-08-29 22:56:35 +02:00
softirq_stack.h s390: Replace S390_lowcore by get_lowcore() 2024-06-18 17:01:33 +02:00
sparsemem.h s390/sparsemem: Provide phys_to_target_node() with CONFIG_NUMA 2024-11-07 10:33:44 +01:00
spinlock.h s390/spinlock: Generate shorter code for arch_spin_unlock() 2024-11-28 14:12:04 +01:00
spinlock_types.h Improve consistency of '#error' directive messages 2024-11-11 17:17:04 -08:00
stacktrace.h s390/entry: Pass the asce as parameter to sie64a() 2024-07-10 19:50:45 +02:00
stp.h s390/time: Add PtP driver 2024-10-30 17:02:39 -07:00
string.h s390/string: add KMSAN support 2024-07-03 19:30:25 -07:00
syscall.h
syscall_wrapper.h posix-timers: Get rid of [COMPAT_]SYS_NI() uses 2023-12-20 21:30:27 -08:00
sysinfo.h s390/sysinfo: add variable capacity information 2023-11-22 14:07:28 +01:00
text-patching.h
thread_info.h s390: Add ARCH_HAS_PREEMPT_LAZY support 2024-11-24 16:59:42 +01:00
timex.h Networking changes for 6.13. 2024-11-21 08:28:08 -08:00
tlb.h The various patchsets are summarized below. Plus of course many 2025-01-26 18:36:23 -08:00
tlbflush.h s390/mm: Remove bogus comment in __tlb_flush_mm() 2024-11-21 12:44:06 +01:00
topology.h s390/smp: Add cpu capacities 2024-08-29 22:56:35 +02:00
tpi.h
types.h
uaccess.h s390/uaccess: Rename get_put_user_noinstr_attributes to uaccess_kmsan_or_inline 2025-01-26 17:24:08 +01:00
unistd.h clone3: drop __ARCH_WANT_SYS_CLONE3 macro 2024-07-10 14:23:38 +02:00
unwind.h
uprobes.h
user.h
uv.h KVM: s390: move pv gmap functions into kvm 2025-01-31 12:03:52 +01:00
vdso-symbols.h s390/vdso: Move vdso symbol handling to separate header file 2024-09-13 17:28:36 +02:00
vdso.h s390/vdso: Drop LBASE_VDSO 2024-11-02 12:37:32 +01:00
vmalloc.h
vmlinux.lds.h
vtime.h s390/vtime: Remove duplicate get_lowcore() calls 2024-06-18 17:01:33 +02:00
vtimer.h
word-at-a-time.h kernel.h: removed REPEAT_BYTE from kernel.h 2024-02-01 09:47:59 -08:00
xor.h