Hi Mauro,

I love your patch! Yet something to improve:

[auto build test ERROR on linuxtv-media/master]
[also build test ERROR on v4.16 next-20180413]
[if your patch is applied to the wrong git tree, please drop us a note to help 
improve the system]

url:    
https://github.com/0day-ci/linux/commits/Mauro-Carvalho-Chehab/media-v4l2-compat-ioctl32-fix-several-__user-annotations/20180414-001705
base:   git://linuxtv.org/media_tree.git master
config: arm64-defconfig (attached as .config)
compiler: aarch64-linux-gnu-gcc (Debian 7.2.0-11) 7.2.0
reproduce:
        wget 
https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O 
~/bin/make.cross
        chmod +x ~/bin/make.cross
        # save the attached .config to linux build tree
        make.cross ARCH=arm64 

All error/warnings (new ones prefixed by >>):

   In file included from include/linux/uaccess.h:14:0,
                    from include/linux/compat.h:20,
                    from drivers/media/v4l2-core/v4l2-compat-ioctl32.c:16:
   drivers/media/v4l2-core/v4l2-compat-ioctl32.c: In function 
'put_v4l2_buffer32':
>> arch/arm64/include/asm/uaccess.h:306:6: error: void value not ignored as it 
>> ought to be
     (x) = (__force __typeof__(*(ptr)))__gu_val;   \
         ^
>> arch/arm64/include/asm/uaccess.h:315:3: note: in expansion of macro 
>> '__get_user_err'
      __get_user_err((x), __p, (err));   \
      ^~~~~~~~~~~~~~
>> arch/arm64/include/asm/uaccess.h:330:2: note: in expansion of macro 
>> '__get_user_check'
     __get_user_check((x), (ptr), __gu_err);    \
     ^~~~~~~~~~~~~~~~
>> arch/arm64/include/asm/uaccess.h:334:18: note: in expansion of macro 
>> '__get_user'
    #define get_user __get_user
                     ^~~~~~~~~~
   drivers/media/v4l2-core/v4l2-compat-ioctl32.c:619:7: note: in expansion of 
macro 'get_user'
      if (get_user(uplane, (__force void __user *)&kp->m.planes))
          ^~~~~~~~
--
   In file included from include/linux/uaccess.h:14:0,
                    from include/linux/compat.h:20,
                    from drivers/media//v4l2-core/v4l2-compat-ioctl32.c:16:
   drivers/media//v4l2-core/v4l2-compat-ioctl32.c: In function 
'put_v4l2_buffer32':
>> arch/arm64/include/asm/uaccess.h:306:6: error: void value not ignored as it 
>> ought to be
     (x) = (__force __typeof__(*(ptr)))__gu_val;   \
         ^
>> arch/arm64/include/asm/uaccess.h:315:3: note: in expansion of macro 
>> '__get_user_err'
      __get_user_err((x), __p, (err));   \
      ^~~~~~~~~~~~~~
>> arch/arm64/include/asm/uaccess.h:330:2: note: in expansion of macro 
>> '__get_user_check'
     __get_user_check((x), (ptr), __gu_err);    \
     ^~~~~~~~~~~~~~~~
>> arch/arm64/include/asm/uaccess.h:334:18: note: in expansion of macro 
>> '__get_user'
    #define get_user __get_user
                     ^~~~~~~~~~
   drivers/media//v4l2-core/v4l2-compat-ioctl32.c:619:7: note: in expansion of 
macro 'get_user'
      if (get_user(uplane, (__force void __user *)&kp->m.planes))
          ^~~~~~~~

vim +306 arch/arm64/include/asm/uaccess.h

4d8efc2d Robin Murphy       2018-02-05  256  
4d8efc2d Robin Murphy       2018-02-05  257  /*
0aea86a2 Catalin Marinas    2012-03-05  258   * The "__xxx" versions of the 
user access functions do not verify the address
0aea86a2 Catalin Marinas    2012-03-05  259   * space - it must have been done 
previously with a separate "access_ok()"
0aea86a2 Catalin Marinas    2012-03-05  260   * call.
0aea86a2 Catalin Marinas    2012-03-05  261   *
0aea86a2 Catalin Marinas    2012-03-05  262   * The "__xxx_error" versions set 
the third argument to -EFAULT if an error
0aea86a2 Catalin Marinas    2012-03-05  263   * occurs, and leave it unchanged 
on success.
0aea86a2 Catalin Marinas    2012-03-05  264   */
57f4959b James Morse        2016-02-05  265  #define __get_user_asm(instr, 
alt_instr, reg, x, addr, err, feature)       \
0aea86a2 Catalin Marinas    2012-03-05  266     asm volatile(                   
                                \
57f4959b James Morse        2016-02-05  267     "1:"ALTERNATIVE(instr "     " 
reg "1, [%2]\n",                  \
57f4959b James Morse        2016-02-05  268                     alt_instr " " 
reg "1, [%2]\n", feature)         \
0aea86a2 Catalin Marinas    2012-03-05  269     "2:\n"                          
                                \
0aea86a2 Catalin Marinas    2012-03-05  270     "       .section .fixup, 
\"ax\"\n"                              \
0aea86a2 Catalin Marinas    2012-03-05  271     "       .align  2\n"            
                                \
0aea86a2 Catalin Marinas    2012-03-05  272     "3:     mov     %w0, %3\n"      
                                \
0aea86a2 Catalin Marinas    2012-03-05  273     "       mov     %1, #0\n"       
                                \
0aea86a2 Catalin Marinas    2012-03-05  274     "       b       2b\n"           
                                \
0aea86a2 Catalin Marinas    2012-03-05  275     "       .previous\n"            
                                \
6c94f27a Ard Biesheuvel     2016-01-01  276     _ASM_EXTABLE(1b, 3b)            
                                \
0aea86a2 Catalin Marinas    2012-03-05  277     : "+r" (err), "=&r" (x)         
                                \
0aea86a2 Catalin Marinas    2012-03-05  278     : "r" (addr), "i" (-EFAULT))
0aea86a2 Catalin Marinas    2012-03-05  279  
0aea86a2 Catalin Marinas    2012-03-05  280  #define __get_user_err(x, ptr, 
err)                                        \
0aea86a2 Catalin Marinas    2012-03-05  281  do {                               
                                        \
0aea86a2 Catalin Marinas    2012-03-05  282     unsigned long __gu_val;         
                                \
0aea86a2 Catalin Marinas    2012-03-05  283     __chk_user_ptr(ptr);            
                                \
bd38967d Catalin Marinas    2016-07-01  284     uaccess_enable_not_uao();       
                                \
0aea86a2 Catalin Marinas    2012-03-05  285     switch (sizeof(*(ptr))) {       
                                \
0aea86a2 Catalin Marinas    2012-03-05  286     case 1:                         
                                \
57f4959b James Morse        2016-02-05  287             __get_user_asm("ldrb", 
"ldtrb", "%w", __gu_val, (ptr),  \
57f4959b James Morse        2016-02-05  288                            (err), 
ARM64_HAS_UAO);                   \
0aea86a2 Catalin Marinas    2012-03-05  289             break;                  
                                \
0aea86a2 Catalin Marinas    2012-03-05  290     case 2:                         
                                \
57f4959b James Morse        2016-02-05  291             __get_user_asm("ldrh", 
"ldtrh", "%w", __gu_val, (ptr),  \
57f4959b James Morse        2016-02-05  292                            (err), 
ARM64_HAS_UAO);                   \
0aea86a2 Catalin Marinas    2012-03-05  293             break;                  
                                \
0aea86a2 Catalin Marinas    2012-03-05  294     case 4:                         
                                \
57f4959b James Morse        2016-02-05  295             __get_user_asm("ldr", 
"ldtr", "%w", __gu_val, (ptr),    \
57f4959b James Morse        2016-02-05  296                            (err), 
ARM64_HAS_UAO);                   \
0aea86a2 Catalin Marinas    2012-03-05  297             break;                  
                                \
0aea86a2 Catalin Marinas    2012-03-05  298     case 8:                         
                                \
d135b8b5 Mark Rutland       2017-05-03  299             __get_user_asm("ldr", 
"ldtr", "%x",  __gu_val, (ptr),   \
57f4959b James Morse        2016-02-05  300                            (err), 
ARM64_HAS_UAO);                   \
0aea86a2 Catalin Marinas    2012-03-05  301             break;                  
                                \
0aea86a2 Catalin Marinas    2012-03-05  302     default:                        
                                \
0aea86a2 Catalin Marinas    2012-03-05  303             BUILD_BUG();            
                                \
0aea86a2 Catalin Marinas    2012-03-05  304     }                               
                                \
bd38967d Catalin Marinas    2016-07-01  305     uaccess_disable_not_uao();      
                                \
58fff517 Michael S. Tsirkin 2014-12-12 @306     (x) = (__force 
__typeof__(*(ptr)))__gu_val;                     \
0aea86a2 Catalin Marinas    2012-03-05  307  } while (0)
0aea86a2 Catalin Marinas    2012-03-05  308  
84624087 Will Deacon        2018-02-05  309  #define __get_user_check(x, ptr, 
err)                                      \
0aea86a2 Catalin Marinas    2012-03-05  310  ({                                 
                                \
84624087 Will Deacon        2018-02-05  311     __typeof__(*(ptr)) __user *__p 
= (ptr);                         \
84624087 Will Deacon        2018-02-05  312     might_fault();                  
                                \
84624087 Will Deacon        2018-02-05  313     if (access_ok(VERIFY_READ, __p, 
sizeof(*__p))) {                \
84624087 Will Deacon        2018-02-05  314             __p = 
uaccess_mask_ptr(__p);                            \
84624087 Will Deacon        2018-02-05 @315             __get_user_err((x), 
__p, (err));                        \
84624087 Will Deacon        2018-02-05  316     } else {                        
                                \
84624087 Will Deacon        2018-02-05  317             (x) = 0; (err) = 
-EFAULT;                               \
84624087 Will Deacon        2018-02-05  318     }                               
                                \
0aea86a2 Catalin Marinas    2012-03-05  319  })
0aea86a2 Catalin Marinas    2012-03-05  320  
0aea86a2 Catalin Marinas    2012-03-05  321  #define __get_user_error(x, ptr, 
err)                                      \
0aea86a2 Catalin Marinas    2012-03-05  322  ({                                 
                                \
84624087 Will Deacon        2018-02-05  323     __get_user_check((x), (ptr), 
(err));                            \
0aea86a2 Catalin Marinas    2012-03-05  324     (void)0;                        
                                \
0aea86a2 Catalin Marinas    2012-03-05  325  })
0aea86a2 Catalin Marinas    2012-03-05  326  
84624087 Will Deacon        2018-02-05  327  #define __get_user(x, ptr)         
                                \
0aea86a2 Catalin Marinas    2012-03-05  328  ({                                 
                                \
84624087 Will Deacon        2018-02-05  329     int __gu_err = 0;               
                                \
84624087 Will Deacon        2018-02-05 @330     __get_user_check((x), (ptr), 
__gu_err);                         \
84624087 Will Deacon        2018-02-05  331     __gu_err;                       
                                \
0aea86a2 Catalin Marinas    2012-03-05  332  })
0aea86a2 Catalin Marinas    2012-03-05  333  
84624087 Will Deacon        2018-02-05 @334  #define get_user   __get_user
84624087 Will Deacon        2018-02-05  335  

:::::: The code at line 306 was first introduced by commit
:::::: 58fff51784cb5e1bcc06a1417be26eec4288507c arm64/uaccess: fix sparse errors

:::::: TO: Michael S. Tsirkin <m...@redhat.com>
:::::: CC: Michael S. Tsirkin <m...@redhat.com>

---
0-DAY kernel test infrastructure                Open Source Technology Center
https://lists.01.org/pipermail/kbuild-all                   Intel Corporation

Attachment: .config.gz
Description: application/gzip

Reply via email to