linux/arch/riscv/include/asm
Heiko Stuebner d374a16539
RISC-V: fix compile error from deduplicated __ALTERNATIVE_CFG_2
On the non-assembler-side wrapping alternative-macros inside other macros
to prevent duplication of code works, as the end result will just be a
string that gets fed to the asm instruction.

In real assembler code, wrapping .macro blocks inside other .macro blocks
brings more restrictions on usage it seems and the optimization done by
commit 2ba8c7dc71 ("riscv: Don't duplicate __ALTERNATIVE_CFG in __ALTERNATIVE_CFG_2")
results in a compile error like:

../arch/riscv/lib/strcmp.S: Assembler messages:
../arch/riscv/lib/strcmp.S:15: Error: too many positional arguments
../arch/riscv/lib/strcmp.S:15: Error: backward ref to unknown label "886:"
../arch/riscv/lib/strcmp.S:15: Error: backward ref to unknown label "887:"
../arch/riscv/lib/strcmp.S:15: Error: backward ref to unknown label "886:"
../arch/riscv/lib/strcmp.S:15: Error: backward ref to unknown label "887:"
../arch/riscv/lib/strcmp.S:15: Error: backward ref to unknown label "886:"
../arch/riscv/lib/strcmp.S:15: Error: attempt to move .org backwards

Wrapping the variables containing assembler code in quotes solves this issue,
compilation and the code in question still works and objdump also shows sane
decompiled results of the affected code.

Fixes: 2ba8c7dc71 ("riscv: Don't duplicate __ALTERNATIVE_CFG in __ALTERNATIVE_CFG_2")
Signed-off-by: Heiko Stuebner <heiko.stuebner@vrull.eu>
Reviewed-by: Palmer Dabbelt <palmer@rivosinc.com>
Reviewed-by: Andrew Jones <ajones@ventanamicro.com>
Link: https://lore.kernel.org/r/20230105192610.1940841-1-heiko@sntech.de
Cc: stable@vger.kernel.org
Signed-off-by: Palmer Dabbelt <palmer@rivosinc.com>
2023-01-19 16:37:05 -08:00
..
vdso riscv: fix detection of toolchain Zihintpause support 2022-10-27 15:13:06 -07:00
Kbuild RISC-V: Move to queued RW locks 2022-05-11 11:50:10 -07:00
alternative-macros.h RISC-V: fix compile error from deduplicated __ALTERNATIVE_CFG_2 2023-01-19 16:37:05 -08:00
alternative.h riscv: add memory-type errata for T-Head 2022-05-11 21:36:33 -07:00
asm-extable.h riscv: extable: add a dedicated uaccess handler 2022-01-05 17:53:29 -08:00
asm-offsets.h
asm-prototypes.h riscv: add VMAP_STACK overflow detection 2021-07-06 12:11:38 -07:00
asm.h Merge patch series "RISC-V: Align the shadow stack" 2022-12-12 09:30:37 -08:00
atomic.h riscv: atomic: Add custom conditional atomic operation implementation 2022-05-21 10:31:47 -07:00
barrier.h riscv: introduce nops and __nops macros for NOP sequences 2022-07-21 17:17:29 -07:00
bitops.h include: move find.h from asm_generic to linux 2022-01-15 08:47:31 -08:00
bug.h bug: Use normal relative pointers in 'struct bug_entry' 2022-05-19 23:46:10 +02:00
cache.h riscv: Add support for non-coherent devices using zicbom extension 2022-07-28 15:30:51 -07:00
cacheflush.h Merge patch series "RISC-V: Ensure Zicbom has a valid block size" 2022-12-09 19:13:01 -08:00
cacheinfo.h riscv: Add cache information in AUX vector 2020-09-15 18:46:08 -07:00
clint.h RISC-V: Resurrect the MMIO timer implementation for M-mode systems 2020-09-19 13:21:11 -07:00
clocksource.h riscv: use vDSO common flow to reduce the latency of the time-related functions 2020-06-10 19:47:16 -07:00
cmpxchg.h riscv: atomic: Cleanup unnecessary definition 2022-05-21 10:31:45 -07:00
compat.h riscv: compat: Add basic compat data type implementation 2022-04-26 13:36:12 -07:00
cpu_ops.h RISC-V: Declare cpu_ops_spinwait in <asm/cpu_ops.h> 2022-08-11 13:06:47 -07:00
cpu_ops_sbi.h riscv: ensure cpu_ops_sbi is declared 2022-08-11 13:46:51 -07:00
cpuidle.h RISC-V: Enable CPU_IDLE drivers 2022-03-10 09:29:21 -08:00
csr.h RISC-V: Add Sstc extension support 2022-08-11 14:41:52 -07:00
current.h riscv: Rename "sp_in_global" to "current_stack_pointer" 2022-03-30 15:15:27 -07:00
delay.h treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 286 2019-06-05 17:36:37 +02:00
efi.h Linux 6.1-rc8 2022-12-07 19:08:57 +01:00
elf.h riscv: Add cache information in AUX vector 2022-10-13 11:06:56 -07:00
errata_list.h drivers/perf: riscv_pmu_sbi: add support for PMU variant on T-Head C9xx cores 2022-10-27 14:35:20 -07:00
extable.h riscv: extable: add `type` and `data` fields 2022-01-05 17:52:54 -08:00
fence.h riscv/spinlock: Strengthen implementations with fences 2018-04-02 19:59:43 -07:00
fixmap.h riscv: remove FIXMAP_PAGE_IO and fall back to its default value 2022-05-11 21:36:33 -07:00
ftrace.h riscv: Workaround mcount name prior to clang-13 2021-04-26 08:25:01 -07:00
futex.h riscv: extable: add a dedicated uaccess handler 2022-01-05 17:53:29 -08:00
gdb_xml.h riscv: Avoid kgdb.h including gdb_xml.h to solve unused-const-variable warning 2020-07-09 20:12:28 -07:00
gpr-num.h riscv: Add X register names to gpr-nums 2022-10-02 10:17:58 +05:30
hugetlb.h riscv/mm: add arch hook arch_clear_hugepage_flags 2022-12-02 11:26:02 -08:00
hwcap.h riscv: Apply a static assert to riscv_isa_ext_id 2022-12-12 22:21:25 -08:00
image.h RISC-V: Typo fixes in image header and documentation. 2019-12-19 09:32:45 -07:00
insn-def.h RISC-V: KVM: Use Svinval for local TLB maintenance when available 2022-10-02 10:18:37 +05:30
io.h RISC-V: Fix MEMREMAP_WB for systems with Svpbmt 2022-12-08 15:43:58 -08:00
irq.h riscv: irq: Fix no prototype warning 2021-03-09 20:46:00 -08:00
irq_work.h riscv: Fix irq_work when SMP is disabled 2022-06-01 21:46:31 -07:00
irqflags.h riscv: abstract out CSR names for supervisor vs machine mode 2019-11-05 09:20:42 -08:00
jump_label.h riscv: jump_label: mark arguments as const to satisfy asm constraints 2022-10-25 23:09:45 -07:00
kasan.h riscv: Implement sv48 support 2022-01-19 17:54:09 -08:00
kdebug.h riscv: Add KGDB support 2020-05-18 11:38:10 -07:00
kexec.h RISC-V: kexec: Fix memory leak of fdt buffer 2022-12-05 10:59:51 -08:00
kfence.h riscv: Enable KFENCE for riscv64 2021-06-30 20:55:41 -07:00
kgdb.h riscv: Avoid kgdb.h including gdb_xml.h to solve unused-const-variable warning 2020-07-09 20:12:28 -07:00
kprobes.h riscv: add riscv rethook implementation 2022-12-02 13:04:05 -08:00
kvm_host.h RISC-V: KVM: Save mvendorid, marchid, and mimpid when creating VCPU 2022-12-07 09:17:43 +05:30
kvm_types.h KVM: RISC-V: Use common KVM implementation of MMU memory caches 2022-01-06 14:38:50 +05:30
kvm_vcpu_fp.h RISC-V: KVM: Improve ISA extension by using a bitmap 2022-07-29 17:14:11 +05:30
kvm_vcpu_insn.h RISC-V: KVM: Add extensible CSR emulation framework 2022-07-29 17:14:53 +05:30
kvm_vcpu_sbi.h RISC-V: KVM: Move sbi related struct and functions to kvm_vcpu_sbi.h 2022-12-07 09:17:27 +05:30
kvm_vcpu_timer.h RISC-V: KVM: Fix kvm_riscv_vcpu_timer_pending() for Sstc 2022-10-21 11:52:45 +05:30
linkage.h treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 286 2019-06-05 17:36:37 +02:00
mmio.h riscv: Use generic pgprot_* macros from <linux/pgtable.h> 2020-07-30 11:37:46 -07:00
mmiowb.h riscv: mmiowb: Fix implicit declaration of function 'smp_processor_id' 2020-05-13 17:11:46 -07:00
mmu.h riscv: mm: notify remote harts about mmu cache updates 2022-12-08 15:18:16 -08:00
mmu_context.h riscv: add ASID-based tlbflushing methods 2021-06-30 20:55:39 -07:00
mmzone.h riscv: Add numa support for riscv64 platform 2021-01-14 15:08:58 -08:00
module.h arch: split MODULE_ARCH_VERMAGIC definitions out to <asm/vermagic.h> 2020-04-23 10:50:26 +09:00
module.lds.h riscv module: remove (NOLOAD) 2022-03-29 14:31:07 -07:00
numa.h riscv: Add numa support for riscv64 platform 2021-01-14 15:08:58 -08:00
page.h riscv: Move cast inside kernel_mapping_[pv]a_to_[vp]a 2022-12-08 17:22:54 -08:00
parse_asm.h riscv: Add SW single-step support for KDB 2020-05-18 11:38:12 -07:00
patch.h riscv: Remove the 'riscv_' prefix of function name 2020-05-18 11:38:13 -07:00
pci.h RISC-V Patches for the 5.20 Merge Window, Part 1 2022-08-06 15:04:48 -07:00
perf_event.h RISC-V: Remove the current perf implementation 2022-03-21 14:58:12 -07:00
pgalloc.h riscv: Sync efi page table's kernel mappings before switching 2022-11-28 16:36:34 -08:00
pgtable-32.h riscv: add RISC-V Svpbmt extension support 2022-05-11 21:36:33 -07:00
pgtable-64.h riscv: Fix P4D_SHIFT definition for 3-level page table mode 2022-12-12 22:38:18 -08:00
pgtable-bits.h riscv: add RISC-V Svpbmt extension support 2022-05-11 21:36:33 -07:00
pgtable.h RISC-V Patches for the 6.2 Merge Window, Part 1 2022-12-14 15:23:49 -08:00
probes.h riscv: Add kprobes supported 2021-01-14 15:09:06 -08:00
processor.h kernel: exit: cleanup release_thread() 2022-09-11 21:55:07 -07:00
ptdump.h riscv: support DEBUG_WX 2020-06-03 20:09:50 -07:00
ptrace.h riscv: ptrace: add argn syntax 2021-07-05 20:53:09 -07:00
sbi.h RISC-V: Cache SBI vendor values 2022-10-27 14:35:11 -07:00
seccomp.h riscv: Enable seccomp architecture tracking 2020-11-20 11:16:35 -08:00
sections.h riscv: Map the kernel with correct permissions the first time 2021-06-30 21:18:58 -07:00
set_memory.h riscv: Map the kernel with correct permissions the first time 2021-06-30 21:18:58 -07:00
signal.h riscv: signal: fix missing prototype warning 2022-08-18 14:42:52 -07:00
signal32.h riscv: compat: signal: Add rt_frame implementation 2022-05-17 16:37:21 -07:00
smp.h riscv: kexec: Fixup crash_smp_send_stop without multi cores 2022-11-29 21:50:59 -08:00
soc.h riscv: Fix builtin DTB handling 2021-01-07 19:00:50 -08:00
sparsemem.h riscv: Allow to dynamically define VA_BITS 2022-01-19 17:54:07 -08:00
stackprotector.h stackprotector: actually use get_random_canary() 2022-11-18 02:18:10 +01:00
stacktrace.h riscv: Add dump stack in show_regs 2021-01-14 15:09:11 -08:00
string.h riscv: Add ARCH_HAS_FORTIFY_SOURCE 2021-03-09 18:18:31 -08:00
suspend.h RISC-V: Add arch functions for non-retentive suspend entry/exit 2022-03-10 09:29:31 -08:00
switch_to.h riscv: switch has_fpu() to the unified static key mechanism 2022-06-16 10:51:31 -07:00
syscall.h riscv: compat: syscall: Add compat_sys_call_table implementation 2022-04-26 13:36:25 -07:00
thread_info.h riscv: traps: add missing prototype 2022-08-18 14:42:58 -07:00
timex.h riscv: use fallback for random_get_entropy() instead of zero 2022-05-13 23:59:23 +02:00
tlb.h treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 286 2019-06-05 17:36:37 +02:00
tlbflush.h riscv: mm: notify remote harts about mmu cache updates 2022-12-08 15:18:16 -08:00
uaccess.h riscv: uaccess: fix type of 0 variable on error in get_user() 2023-01-05 12:30:41 -08:00
unistd.h riscv: Wire up memfd_secret in UAPI header 2022-06-01 21:46:36 -07:00
uprobes.h riscv: Add uprobes supported 2021-01-14 15:09:08 -08:00
vdso.h riscv/vdso: typo therefor 2022-10-25 23:29:36 -07:00
vendorid_list.h riscv: add memory-type errata for T-Head 2022-05-11 21:36:33 -07:00
vermagic.h arch: split MODULE_ARCH_VERMAGIC definitions out to <asm/vermagic.h> 2020-04-23 10:50:26 +09:00
vmalloc.h riscv: Enable HAVE_ARCH_HUGE_VMAP for 64BIT 2022-10-28 17:10:01 -07:00
word-at-a-time.h treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 286 2019-06-05 17:36:37 +02:00
xip_fixup.h RISC-V: Split out the XIP fixups into their own file 2022-05-25 14:43:33 -07:00