The Linux Kernel Mailing List
 help / color / mirror / Atom feed
* [PATCH] x86/mm/kaslr: Add operand size suffix to 'mul' instruction
@ 2017-04-26 19:01 Matthias Kaehlcke
  2017-04-26 19:09 ` Kees Cook
  0 siblings, 1 reply; 4+ messages in thread
From: Matthias Kaehlcke @ 2017-04-26 19:01 UTC (permalink / raw)
  To: Thomas Gleixner, Ingo Molnar, H . Peter Anvin, Kees Cook
  Cc: x86, linux-kernel, Grant Grundler, Greg Hackmann,
	Michael Davidson, Matthias Kaehlcke

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@chromium.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

^ permalink raw reply related	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2017-04-26 19:57 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2017-04-26 19:01 [PATCH] x86/mm/kaslr: Add operand size suffix to 'mul' instruction Matthias Kaehlcke
2017-04-26 19:09 ` Kees Cook
2017-04-26 19:31   ` Matthias Kaehlcke
2017-04-26 19:57     ` Kees Cook

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox