Skip to content
  • Matthias Kaehlcke's avatar
    x86/mm/kaslr: Use the _ASM_MUL macro for multiplication to work around Clang incompatibility · 121843eb
    Matthias Kaehlcke authored
    
    
    The constraint "rm" allows the compiler to put mix_const into memory.
    When the input operand is a memory location then MUL needs an operand
    size suffix, since Clang can't infer the multiplication width from the
    operand.
    
    Add and use the _ASM_MUL macro which determines the operand size and
    resolves to the NUL instruction with the corresponding suffix.
    
    This 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: default avatarMatthias Kaehlcke <mka@chromium.org>
    Cc: Grant Grundler <grundler@chromium.org>
    Cc: Greg Hackmann <ghackmann@google.com>
    Cc: Kees Cook <keescook@chromium.org>
    Cc: Linus Torvalds <torvalds@linux-foundation.org>
    Cc: Michael Davidson <md@google.com>
    Cc: Peter Zijlstra <peterz@infradead.org>
    Cc: Thomas Gleixner <tglx@linutronix.de>
    Link: http://lkml.kernel.org/r/20170501224741.133938-1-mka@chromium.org
    
    
    Signed-off-by: default avatarIngo Molnar <mingo@kernel.org>
    121843eb