Messages in this thread Patch in this message | | | From | Daniel Sanders <> | Subject | [PATCH 3/5] MIPS: LLVMLinux: Fix an 'inline asm input/output type mismatch' error. | Date | Tue, 3 Feb 2015 13:37:17 +0000 |
| |
From: Toma Tabacu <toma.tabacu@imgtec.com>
Change the type of csum_ipv6_magic's 'proto' argument from unsigned short to __u32.
This fixes a type mismatch between the 'htonl(proto)' inline asm input, which is __u32, and the 'proto' output, which is unsigned short.
This is the error message reported by clang: arch/mips/include/asm/checksum.h:285:27: error: unsupported inline asm: input with type '__be32' (aka 'unsigned int') matching output with type 'unsigned short' "0" (htonl(len)), "1" (htonl(proto)), "r" (sum)); ^~~~~~~~~~~~
The changed code can be compiled successfully by both gcc and clang.
Signed-off-by: Toma Tabacu <toma.tabacu@imgtec.com> Signed-off-by: Daniel Sanders <daniel.sanders@imgtec.com> Cc: Ralf Baechle <ralf@linux-mips.org> Cc: Markos Chandras <markos.chandras@imgtec.com> Cc: Leonid Yegoshin <Leonid.Yegoshin@imgtec.com> Cc: linux-mips@linux-mips.org Cc: linux-kernel@vger.kernel.org --- arch/mips/include/asm/checksum.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/arch/mips/include/asm/checksum.h b/arch/mips/include/asm/checksum.h index 3418c51..683b9e7 100644 --- a/arch/mips/include/asm/checksum.h +++ b/arch/mips/include/asm/checksum.h @@ -225,7 +225,7 @@ static inline __sum16 ip_compute_csum(const void *buff, int len) #define _HAVE_ARCH_IPV6_CSUM static __inline__ __sum16 csum_ipv6_magic(const struct in6_addr *saddr, const struct in6_addr *daddr, - __u32 len, unsigned short proto, + __u32 len, __u32 proto, __wsum sum) { __asm__( -- 2.1.4
| |