Skip to content

Commit 23df39f

Browse files
Guo JinPeter Zijlstra
authored andcommitted
locking: Fix qspinlock/x86 inline asm error
When compiling linux 6.1.0-rc3 configured with CONFIG_64BIT=y and CONFIG_PARAVIRT_SPINLOCKS=y on x86_64 using LLVM 11.0, an error: "<inline asm> error: changed section flags for .spinlock.text, expected:: 0x6" occurred. The reason is the .spinlock.text in kernel/locking/qspinlock.o is used many times, but its flags are omitted in subsequent use. LLVM 11.0 assembler didn't permit to leave out flags in subsequent uses of the same sections. So this patch adds the corresponding flags to avoid above error. Fixes: 501f7f6 ("locking: Add __lockfunc to slow path functions") Signed-off-by: Guo Jin <[email protected]> Signed-off-by: Peter Zijlstra (Intel) <[email protected]> Reviewed-by: Nathan Chancellor <[email protected]> Link: https://lore.kernel.org/r/[email protected]
1 parent 094226a commit 23df39f

File tree

1 file changed

+1
-1
lines changed

1 file changed

+1
-1
lines changed

arch/x86/include/asm/qspinlock_paravirt.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,7 @@ __PV_CALLEE_SAVE_REGS_THUNK(__pv_queued_spin_unlock_slowpath, ".spinlock.text");
3737
* rsi = lockval (second argument)
3838
* rdx = internal variable (set to 0)
3939
*/
40-
asm (".pushsection .spinlock.text;"
40+
asm (".pushsection .spinlock.text, \"ax\";"
4141
".globl " PV_UNLOCK ";"
4242
".type " PV_UNLOCK ", @function;"
4343
".align 4,0x90;"

0 commit comments

Comments
 (0)