[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Message-Id: <20170426190112.98116-1-mka@chromium.org>
Date: Wed, 26 Apr 2017 12:01:12 -0700
From: Matthias Kaehlcke <mka@...omium.org>
To: Thomas Gleixner <tglx@...utronix.de>,
Ingo Molnar <mingo@...hat.com>,
"H . Peter Anvin" <hpa@...or.com>,
Kees Cook <keescook@...omium.org>
Cc: x86@...nel.org, linux-kernel@...r.kernel.org,
Grant Grundler <grundler@...omium.org>,
Greg Hackmann <ghackmann@...gle.com>,
Michael Davidson <md@...gle.com>,
Matthias Kaehlcke <mka@...omium.org>
Subject: [PATCH] x86/mm/kaslr: Add operand size suffix to 'mul' instruction
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@...omium.org>
---
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
Powered by blists - more mailing lists