[PATCH] x86/asm: fix gcc-5 enqcmds() build failure

From: Arnd Bergmann
Date: Mon Aug 02 2021 - 10:54:05 EST


From: Arnd Bergmann <arnd@xxxxxxxx>

Building drivers/dma/idxd/submit.o with gcc-5.5 results in a cryptic
error messages:

arch/x86/include/asm/special_insns.h: Assembler messages:
arch/x86/include/asm/special_insns.h:286: Error: operand size mismatch for `setz'
make[5]: *** [scripts/Makefile.build:272: drivers/dma/idxd/submit.o] Error 1

It seems that this happens for 32-bit arguments when the instruction
expects an 8-bit argument. Change the type of the local variable
accordingly to get a clean build.

Fixes: 7f5933f81bd8 ("x86/asm: Add an enqcmds() wrapper for the ENQCMDS instruction")
Fixes: 8e50d392652f ("dmaengine: idxd: Add shared workqueue support") # guessed
Signed-off-by: Arnd Bergmann <arnd@xxxxxxxx>
---
arch/x86/include/asm/special_insns.h | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/arch/x86/include/asm/special_insns.h b/arch/x86/include/asm/special_insns.h
index f3fbb84ff8a7..33264839f99e 100644
--- a/arch/x86/include/asm/special_insns.h
+++ b/arch/x86/include/asm/special_insns.h
@@ -275,7 +275,7 @@ static inline int enqcmds(void __iomem *dst, const void *src)
{
const struct { char _[64]; } *__src = src;
struct { char _[64]; } __iomem *__dst = dst;
- int zf;
+ u8 zf;

/*
* ENQCMDS %(rdx), rax
--
2.29.2