Hi Benjamin, [auto build test WARNING on tip/x86/core] [also build test WARNING on v4.5-rc7 next-20160309] [if your patch is applied to the wrong git tree, please drop us a note to help improving the system] url: https://github.com/0day-ci/linux/commits/Benjamin-LaHaise/x86_32-add-support-for-64-bit-__get_user-v2/20160310-033507 config: i386-randconfig-s1-201610 (attached as .config) reproduce: # save the attached .config to linux build tree make ARCH=i386 All warnings (new ones prefixed by >>): In file included from include/uapi/linux/stddef.h:1:0, from include/linux/stddef.h:4, from include/uapi/linux/posix_types.h:4, from include/uapi/linux/types.h:13, from include/linux/types.h:5, from include/linux/thread_info.h:10, from lib/bitmap.c:9: lib/bitmap.c: In function '__bitmap_parse': lib/bitmap.c:377:27: warning: operation on 'ubuf' may be undefined [-Wsequence-point] if (__get_user(c, ubuf++)) ^ include/linux/compiler.h:147:28: note: in definition of macro '__trace_if' if (__builtin_constant_p((cond)) ? !!(cond) : \ ^ >> lib/bitmap.c:377:5: note: in expansion of macro 'if' if (__get_user(c, ubuf++)) ^ >> arch/x86/include/asm/uaccess.h:351:15: note: in expansion of macro '__m' : "m" (__m(ptr)), "m" __m(((u32 *)(ptr)) + 1), \ ^ arch/x86/include/asm/uaccess.h:378:3: note: in expansion of macro '__get_user_asm_u64' __get_user_asm_u64(x, ptr, retval, errret); \ ^ arch/x86/include/asm/uaccess.h:443:2: note: in expansion of macro '__get_user_size' __get_user_size(__gu_val, (ptr), (size), __gu_err, -EFAULT); \ ^ arch/x86/include/asm/uaccess.h:512:2: note: in expansion of macro '__get_user_nocheck' __get_user_nocheck((x), (ptr), sizeof(*(ptr))) ^ lib/bitmap.c:377:9: note: in expansion of macro '__get_user' if (__get_user(c, ubuf++)) ^ lib/bitmap.c:377:27: warning: operation on 'ubuf' may be undefined [-Wsequence-point] if (__get_user(c, ubuf++)) ^ include/linux/compiler.h:147:40: note: in definition of macro '__trace_if' if (__builtin_constant_p((cond)) ? !!(cond) : \ ^ >> lib/bitmap.c:377:5: note: in expansion of macro 'if' if (__get_user(c, ubuf++)) ^ >> arch/x86/include/asm/uaccess.h:351:15: note: in expansion of macro '__m' : "m" (__m(ptr)), "m" __m(((u32 *)(ptr)) + 1), \ ^ arch/x86/include/asm/uaccess.h:378:3: note: in expansion of macro '__get_user_asm_u64' __get_user_asm_u64(x, ptr, retval, errret); \ ^ arch/x86/include/asm/uaccess.h:443:2: note: in expansion of macro '__get_user_size' __get_user_size(__gu_val, (ptr), (size), __gu_err, -EFAULT); \ ^ arch/x86/include/asm/uaccess.h:512:2: note: in expansion of macro '__get_user_nocheck' __get_user_nocheck((x), (ptr), sizeof(*(ptr))) ^ lib/bitmap.c:377:9: note: in expansion of macro '__get_user' if (__get_user(c, ubuf++)) ^ lib/bitmap.c:377:27: warning: operation on 'ubuf' may be undefined [-Wsequence-point] if (__get_user(c, ubuf++)) ^ include/linux/compiler.h:158:16: note: in definition of macro '__trace_if' ______r = !!(cond); \ ^ >> lib/bitmap.c:377:5: note: in expansion of macro 'if' if (__get_user(c, ubuf++)) ^ >> arch/x86/include/asm/uaccess.h:351:15: note: in expansion of macro '__m' : "m" (__m(ptr)), "m" __m(((u32 *)(ptr)) + 1), \ ^ arch/x86/include/asm/uaccess.h:378:3: note: in expansion of macro '__get_user_asm_u64' __get_user_asm_u64(x, ptr, retval, errret); \ ^ arch/x86/include/asm/uaccess.h:443:2: note: in expansion of macro '__get_user_size' __get_user_size(__gu_val, (ptr), (size), __gu_err, -EFAULT); \ ^ arch/x86/include/asm/uaccess.h:512:2: note: in expansion of macro '__get_user_nocheck' __get_user_nocheck((x), (ptr), sizeof(*(ptr))) ^ lib/bitmap.c:377:9: note: in expansion of macro '__get_user' if (__get_user(c, ubuf++)) ^ lib/bitmap.c: In function '__bitmap_parselist': lib/bitmap.c:525:27: warning: operation on 'ubuf' may be undefined [-Wsequence-point] if (__get_user(c, ubuf++)) ^ include/linux/compiler.h:147:28: note: in definition of macro '__trace_if' if (__builtin_constant_p((cond)) ? !!(cond) : \ ^ lib/bitmap.c:525:5: note: in expansion of macro 'if' if (__get_user(c, ubuf++)) ^ >> arch/x86/include/asm/uaccess.h:351:15: note: in expansion of macro '__m' : "m" (__m(ptr)), "m" __m(((u32 *)(ptr)) + 1), \ ^ arch/x86/include/asm/uaccess.h:378:3: note: in expansion of macro '__get_user_asm_u64' __get_user_asm_u64(x, ptr, retval, errret); \ ^ arch/x86/include/asm/uaccess.h:443:2: note: in expansion of macro '__get_user_size' __get_user_size(__gu_val, (ptr), (size), __gu_err, -EFAULT); \ ^ arch/x86/include/asm/uaccess.h:512:2: note: in expansion of macro '__get_user_nocheck' __get_user_nocheck((x), (ptr), sizeof(*(ptr))) ^ lib/bitmap.c:525:9: note: in expansion of macro '__get_user' if (__get_user(c, ubuf++)) ^ lib/bitmap.c:525:27: warning: operation on 'ubuf' may be undefined [-Wsequence-point] if (__get_user(c, ubuf++)) ^ include/linux/compiler.h:147:40: note: in definition of macro '__trace_if' if (__builtin_constant_p((cond)) ? !!(cond) : \ ^ lib/bitmap.c:525:5: note: in expansion of macro 'if' if (__get_user(c, ubuf++)) ^ >> arch/x86/include/asm/uaccess.h:351:15: note: in expansion of macro '__m' : "m" (__m(ptr)), "m" __m(((u32 *)(ptr)) + 1), \ ^ arch/x86/include/asm/uaccess.h:378:3: note: in expansion of macro '__get_user_asm_u64' __get_user_asm_u64(x, ptr, retval, errret); \ ^ arch/x86/include/asm/uaccess.h:443:2: note: in expansion of macro '__get_user_size' __get_user_size(__gu_val, (ptr), (size), __gu_err, -EFAULT); \ ^ arch/x86/include/asm/uaccess.h:512:2: note: in expansion of macro '__get_user_nocheck' __get_user_nocheck((x), (ptr), sizeof(*(ptr))) ^ lib/bitmap.c:525:9: note: in expansion of macro '__get_user' if (__get_user(c, ubuf++)) ^ lib/bitmap.c:525:27: warning: operation on 'ubuf' may be undefined [-Wsequence-point] if (__get_user(c, ubuf++)) ^ include/linux/compiler.h:158:16: note: in definition of macro '__trace_if' ______r = !!(cond); \ ^ lib/bitmap.c:525:5: note: in expansion of macro 'if' if (__get_user(c, ubuf++)) ^ >> arch/x86/include/asm/uaccess.h:351:15: note: in expansion of macro '__m' : "m" (__m(ptr)), "m" __m(((u32 *)(ptr)) + 1), \ ^ arch/x86/include/asm/uaccess.h:378:3: note: in expansion of macro '__get_user_asm_u64' __get_user_asm_u64(x, ptr, retval, errret); \ ^ arch/x86/include/asm/uaccess.h:443:2: note: in expansion of macro '__get_user_size' __get_user_size(__gu_val, (ptr), (size), __gu_err, -EFAULT); \ ^ arch/x86/include/asm/uaccess.h:512:2: note: in expansion of macro '__get_user_nocheck' __get_user_nocheck((x), (ptr), sizeof(*(ptr))) ^ lib/bitmap.c:525:9: note: in expansion of macro '__get_user' if (__get_user(c, ubuf++)) ^ vim +/__m +351 arch/x86/include/asm/uaccess.h 335 #ifdef CONFIG_X86_32 336 #define __get_user_asm_u64(x, ptr, retval, errret) \ 337 ({ \ 338 asm volatile(ASM_STAC "\n" \ 339 "1: movl %2,%%eax\n" \ 340 "2: movl %3,%%edx\n" \ 341 "3: " ASM_CLAC "\n" \ 342 ".section .fixup,\"ax\"\n" \ 343 "4: mov %4,%0\n" \ 344 " xorl %%eax,%%eax\n" \ 345 " xorl %%edx,%%edx\n" \ 346 " jmp 3b\n" \ 347 ".previous\n" \ 348 _ASM_EXTABLE(1b, 4b) \ 349 _ASM_EXTABLE(2b, 4b) \ 350 : "=r" (retval), "=A"(x) \ > 351 : "m" (__m(ptr)), "m" __m(((u32 *)(ptr)) + 1), \ 352 "i" (errret), "0" (retval)); \ 353 }) 354 355 #define __get_user_asm_ex_u64(x, ptr) (x) = __get_user_bad() 356 #else 357 #define __get_user_asm_u64(x, ptr, retval, errret) \ 358 __get_user_asm(x, ptr, retval, "q", "", "=r", errret) 359 #define __get_user_asm_ex_u64(x, ptr) \ --- 0-DAY kernel test infrastructure Open Source Technology Center https://lists.01.org/pipermail/kbuild-all Intel Corporation