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 <mst@xxxxxxxxxx> :::::: CC: Michael S. Tsirkin <mst@xxxxxxxxxx> --- 0-DAY kernel test infrastructure Open Source Technology Center https://lists.01.org/pipermail/kbuild-all Intel Corporation
Attachment:
.config.gz
Description: application/gzip