lkml.org 
[lkml]   [2016]   [Mar]   [9]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
Date
From
SubjectRe: [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
[unhandled content-type:application/octet-stream]
\
 
 \ /
  Last update: 2016-03-09 22:01    [W:0.130 / U:0.012 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site