• J
    x86, asm: Fix a compilation issue with clang · bdfc017e
    Jan-Simon Möller 提交于
    Clang does not support the "shortcut" we're taking here for gcc (see below).
    The patch uses the macro _ASM_DX to do the job.
    
    From arch/x86/include/asm/uaccess.h:
    /*
     * Careful: we have to cast the result to the type of the pointer
     * for sign reasons.
     *
     * The use of %edx as the register specifier is a bit of a
     * simplification, as gcc only cares about it as the starting point
     * and not size: for a 64-bit value it will use %ecx:%edx on 32 bits
     * (%ecx being the next register in gcc's x86 register sequence), and
     * %rdx on 64 bits.
     */
    
    [ hpa: I consider this a compatibility bug in clang as this reflects a
      bit of a misunderstanding about how register strings are used by
      gcc, but the workaround is straightforward and there is no
      particular reason to not do it. ]
    Signed-off-by: NJan-Simon Möller <dl9pf@gmx.de>
    Link: http://lkml.kernel.org/r/1377803585-5913-3-git-send-email-dl9pf@gmx.deSigned-off-by: NH. Peter Anvin <hpa@linux.intel.com>
    bdfc017e
uaccess.h 16.3 KB