[PATCH] x86/mm/kaslr: Add operand size suffix to 'mul' instruction

From: Matthias Kaehlcke
Date: Wed Apr 26 2017 - 15:02:03 EST


In difference to gas clang doesn't seem to infer the size from the
operands. Adding the suffix fixes the following error when building
with clang:

CC arch/x86/lib/kaslr.o
/tmp/kaslr-dfe1ad.s: Assembler messages:
/tmp/kaslr-dfe1ad.s:182: Error: no instruction mnemonic suffix given and
no register operands; can't size instruction

Signed-off-by: Matthias Kaehlcke <mka@xxxxxxxxxxxx>
---
arch/x86/lib/kaslr.c | 6 +++++-
1 file changed, 5 insertions(+), 1 deletion(-)

diff --git a/arch/x86/lib/kaslr.c b/arch/x86/lib/kaslr.c
index 121f59c6ee54..947d4aa92ff7 100644
--- a/arch/x86/lib/kaslr.c
+++ b/arch/x86/lib/kaslr.c
@@ -79,7 +79,11 @@ unsigned long kaslr_get_random_long(const char *purpose)
}

/* Circular multiply for better bit diffusion */
- asm("mul %3"
+#ifdef CONFIG_X86_64
+ asm("mulq %3"
+#else
+ asm("mull %3"
+#endif
: "=a" (random), "=d" (raw)
: "a" (random), "rm" (mix_const));
random += raw;
--
2.13.0.rc0.306.g87b477812d-goog