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

Attachment: .config.gz
Description: Binary data

Reply via email to