lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Date:	Thu, 10 Mar 2016 04:24:42 +0800
From:	kbuild test robot <lkp@...el.com>
To:	Benjamin LaHaise <bcrl@...ck.org>
Cc:	kbuild-all@...org, "H. Peter Anvin" <hpa@...or.com>,
	Ingo Molnar <mingo@...hat.com>,
	Russell King <rmk@....linux.org.uk>,
	Thomas Gleixner <tglx@...utronix.de>, x86@...nel.org,
	linux-kernel@...r.kernel.org
Subject: Re: [PATCH] x86_32: add support for 64 bit __get_user() v2

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

Download attachment ".config.gz" of type "application/octet-stream" (21582 bytes)

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ