tree: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master head: 61556703b610a104de324e4f061dc6cf7b218b46 commit: e5fc436f06eef54ef512ea55a9db8eb9f2e76959 sparse: use static inline for __chk_{user,io}_ptr() date: 5 months ago config: sh-randconfig-s031-20210204 (attached as .config) compiler: sh4-linux-gcc (GCC) 9.3.0 reproduce: wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross chmod +x ~/bin/make.cross # apt-get install sparse # sparse version: v0.6.3-215-g0fb77bb6-dirty # https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=e5fc436f06eef54ef512ea55a9db8eb9f2e76959 git remote add linus https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git git fetch --no-tags linus master git checkout e5fc436f06eef54ef512ea55a9db8eb9f2e76959 # save the attached .config to linux build tree COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-9.3.0 make.cross C=1 CF='-fdiagnostic-prefix -D__CHECK_ENDIAN__' ARCH=sh
If you fix the issue, kindly add following tag as appropriate Reported-by: kernel test robot <l...@intel.com> "sparse warnings: (new ones prefixed by >>)" drivers/staging/greybus/fw-management.c:493:21: sparse: sparse: incorrect type in initializer (different address spaces) @@ expected unsigned int const *__gu_addr @@ got unsigned int [noderef] __user * @@ drivers/staging/greybus/fw-management.c:493:21: sparse: expected unsigned int const *__gu_addr drivers/staging/greybus/fw-management.c:493:21: sparse: got unsigned int [noderef] __user * >> drivers/staging/greybus/fw-management.c:493:21: sparse: sparse: incorrect >> type in argument 1 (different address spaces) @@ expected void const >> volatile [noderef] __user *ptr @@ got unsigned int const *__gu_addr @@ drivers/staging/greybus/fw-management.c:493:21: sparse: expected void const volatile [noderef] __user *ptr drivers/staging/greybus/fw-management.c:493:21: sparse: got unsigned int const *__gu_addr -- sound/core/oss/pcm_oss.c:884:53: sparse: sparse: incorrect type in argument 1 (different base types) @@ expected int format @@ got restricted snd_pcm_format_t [assigned] [usertype] format @@ sound/core/oss/pcm_oss.c:884:53: sparse: expected int format sound/core/oss/pcm_oss.c:884:53: sparse: got restricted snd_pcm_format_t [assigned] [usertype] format sound/core/oss/pcm_oss.c:884:25: sparse: sparse: incorrect type in assignment (different base types) @@ expected restricted snd_pcm_format_t [assigned] [usertype] sformat @@ got int @@ sound/core/oss/pcm_oss.c:884:25: sparse: expected restricted snd_pcm_format_t [assigned] [usertype] sformat sound/core/oss/pcm_oss.c:884:25: sparse: got int sound/core/oss/pcm_oss.c:2592:21: sparse: sparse: incorrect type in initializer (different address spaces) @@ expected int const *__gu_addr @@ got int [noderef] __user *p @@ sound/core/oss/pcm_oss.c:2592:21: sparse: expected int const *__gu_addr sound/core/oss/pcm_oss.c:2592:21: sparse: got int [noderef] __user *p >> sound/core/oss/pcm_oss.c:2592:21: sparse: sparse: incorrect type in argument >> 1 (different address spaces) @@ expected void const volatile [noderef] >> __user *ptr @@ got int const *__gu_addr @@ sound/core/oss/pcm_oss.c:2592:21: sparse: expected void const volatile [noderef] __user *ptr sound/core/oss/pcm_oss.c:2592:21: sparse: got int const *__gu_addr sound/core/oss/pcm_oss.c:2603:21: sparse: sparse: incorrect type in initializer (different address spaces) @@ expected int const *__gu_addr @@ got int [noderef] __user *p @@ sound/core/oss/pcm_oss.c:2603:21: sparse: expected int const *__gu_addr sound/core/oss/pcm_oss.c:2603:21: sparse: got int [noderef] __user *p sound/core/oss/pcm_oss.c:2603:21: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void const volatile [noderef] __user *ptr @@ got int const *__gu_addr @@ sound/core/oss/pcm_oss.c:2603:21: sparse: expected void const volatile [noderef] __user *ptr sound/core/oss/pcm_oss.c:2603:21: sparse: got int const *__gu_addr sound/core/oss/pcm_oss.c:2615:21: sparse: sparse: incorrect type in initializer (different address spaces) @@ expected int const *__gu_addr @@ got int [noderef] __user *p @@ sound/core/oss/pcm_oss.c:2615:21: sparse: expected int const *__gu_addr sound/core/oss/pcm_oss.c:2615:21: sparse: got int [noderef] __user *p sound/core/oss/pcm_oss.c:2615:21: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void const volatile [noderef] __user *ptr @@ got int const *__gu_addr @@ sound/core/oss/pcm_oss.c:2615:21: sparse: expected void const volatile [noderef] __user *ptr sound/core/oss/pcm_oss.c:2615:21: sparse: got int const *__gu_addr sound/core/oss/pcm_oss.c:2627:21: sparse: sparse: incorrect type in initializer (different address spaces) @@ expected int const *__gu_addr @@ got int [noderef] __user *p @@ sound/core/oss/pcm_oss.c:2627:21: sparse: expected int const *__gu_addr sound/core/oss/pcm_oss.c:2627:21: sparse: got int [noderef] __user *p sound/core/oss/pcm_oss.c:2627:21: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void const volatile [noderef] __user *ptr @@ got int const *__gu_addr @@ sound/core/oss/pcm_oss.c:2627:21: sparse: expected void const volatile [noderef] __user *ptr sound/core/oss/pcm_oss.c:2627:21: sparse: got int const *__gu_addr sound/core/oss/pcm_oss.c:2644:21: sparse: sparse: incorrect type in initializer (different address spaces) @@ expected int const *__gu_addr @@ got int [noderef] __user *p @@ sound/core/oss/pcm_oss.c:2644:21: sparse: expected int const *__gu_addr sound/core/oss/pcm_oss.c:2644:21: sparse: got int [noderef] __user *p sound/core/oss/pcm_oss.c:2644:21: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void const volatile [noderef] __user *ptr @@ got int const *__gu_addr @@ sound/core/oss/pcm_oss.c:2644:21: sparse: expected void const volatile [noderef] __user *ptr sound/core/oss/pcm_oss.c:2644:21: sparse: got int const *__gu_addr sound/core/oss/pcm_oss.c:2651:21: sparse: sparse: incorrect type in initializer (different address spaces) @@ expected int const *__gu_addr @@ got int [noderef] __user *p @@ sound/core/oss/pcm_oss.c:2651:21: sparse: expected int const *__gu_addr sound/core/oss/pcm_oss.c:2651:21: sparse: got int [noderef] __user *p sound/core/oss/pcm_oss.c:2651:21: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void const volatile [noderef] __user *ptr @@ got int const *__gu_addr @@ sound/core/oss/pcm_oss.c:2651:21: sparse: expected void const volatile [noderef] __user *ptr sound/core/oss/pcm_oss.c:2651:21: sparse: got int const *__gu_addr sound/core/oss/pcm_oss.c:2678:21: sparse: sparse: incorrect type in initializer (different address spaces) @@ expected int const *__gu_addr @@ got int [noderef] __user *p @@ sound/core/oss/pcm_oss.c:2678:21: sparse: expected int const *__gu_addr sound/core/oss/pcm_oss.c:2678:21: sparse: got int [noderef] __user *p sound/core/oss/pcm_oss.c:2678:21: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void const volatile [noderef] __user *ptr @@ got int const *__gu_addr @@ sound/core/oss/pcm_oss.c:2678:21: sparse: expected void const volatile [noderef] __user *ptr sound/core/oss/pcm_oss.c:2678:21: sparse: got int const *__gu_addr vim +493 drivers/staging/greybus/fw-management.c 96ba6740099b1f Viresh Kumar 2016-05-14 406 013e665372733f Viresh Kumar 2016-05-14 407 static int fw_mgmt_ioctl(struct fw_mgmt *fw_mgmt, unsigned int cmd, 013e665372733f Viresh Kumar 2016-05-14 408 void __user *buf) 013e665372733f Viresh Kumar 2016-05-14 409 { 5e10f0047a1b79 Viresh Kumar 2016-07-25 410 struct fw_mgmt_ioc_get_intf_version intf_fw_info; 5e10f0047a1b79 Viresh Kumar 2016-07-25 411 struct fw_mgmt_ioc_get_backend_version backend_fw_info; 013e665372733f Viresh Kumar 2016-05-14 412 struct fw_mgmt_ioc_intf_load_and_validate intf_load; 013e665372733f Viresh Kumar 2016-05-14 413 struct fw_mgmt_ioc_backend_fw_update backend_update; 013e665372733f Viresh Kumar 2016-05-14 414 unsigned int timeout; 013e665372733f Viresh Kumar 2016-05-14 415 int ret; 013e665372733f Viresh Kumar 2016-05-14 416 04f0e6ebd1a2ca Viresh Kumar 2016-05-14 417 /* Reject any operations after mode-switch has started */ 04f0e6ebd1a2ca Viresh Kumar 2016-05-14 418 if (fw_mgmt->mode_switch_started) 04f0e6ebd1a2ca Viresh Kumar 2016-05-14 419 return -EBUSY; 04f0e6ebd1a2ca Viresh Kumar 2016-05-14 420 013e665372733f Viresh Kumar 2016-05-14 421 switch (cmd) { 013e665372733f Viresh Kumar 2016-05-14 422 case FW_MGMT_IOC_GET_INTF_FW: 5e10f0047a1b79 Viresh Kumar 2016-07-25 423 ret = fw_mgmt_interface_fw_version_operation(fw_mgmt, 5e10f0047a1b79 Viresh Kumar 2016-07-25 424 &intf_fw_info); 013e665372733f Viresh Kumar 2016-05-14 425 if (ret) 013e665372733f Viresh Kumar 2016-05-14 426 return ret; 013e665372733f Viresh Kumar 2016-05-14 427 5e10f0047a1b79 Viresh Kumar 2016-07-25 428 if (copy_to_user(buf, &intf_fw_info, sizeof(intf_fw_info))) 013e665372733f Viresh Kumar 2016-05-14 429 return -EFAULT; 013e665372733f Viresh Kumar 2016-05-14 430 013e665372733f Viresh Kumar 2016-05-14 431 return 0; 013e665372733f Viresh Kumar 2016-05-14 432 case FW_MGMT_IOC_GET_BACKEND_FW: 5e10f0047a1b79 Viresh Kumar 2016-07-25 433 if (copy_from_user(&backend_fw_info, buf, 5e10f0047a1b79 Viresh Kumar 2016-07-25 434 sizeof(backend_fw_info))) 013e665372733f Viresh Kumar 2016-05-14 435 return -EFAULT; 013e665372733f Viresh Kumar 2016-05-14 436 5e10f0047a1b79 Viresh Kumar 2016-07-25 437 ret = fw_mgmt_backend_fw_version_operation(fw_mgmt, 5e10f0047a1b79 Viresh Kumar 2016-07-25 438 &backend_fw_info); 013e665372733f Viresh Kumar 2016-05-14 439 if (ret) 013e665372733f Viresh Kumar 2016-05-14 440 return ret; 013e665372733f Viresh Kumar 2016-05-14 441 5e10f0047a1b79 Viresh Kumar 2016-07-25 442 if (copy_to_user(buf, &backend_fw_info, 5e10f0047a1b79 Viresh Kumar 2016-07-25 443 sizeof(backend_fw_info))) 013e665372733f Viresh Kumar 2016-05-14 444 return -EFAULT; 013e665372733f Viresh Kumar 2016-05-14 445 013e665372733f Viresh Kumar 2016-05-14 446 return 0; 013e665372733f Viresh Kumar 2016-05-14 447 case FW_MGMT_IOC_INTF_LOAD_AND_VALIDATE: 013e665372733f Viresh Kumar 2016-05-14 448 if (copy_from_user(&intf_load, buf, sizeof(intf_load))) 013e665372733f Viresh Kumar 2016-05-14 449 return -EFAULT; 013e665372733f Viresh Kumar 2016-05-14 450 013e665372733f Viresh Kumar 2016-05-14 451 ret = fw_mgmt_load_and_validate_operation(fw_mgmt, 013e665372733f Viresh Kumar 2016-05-14 452 intf_load.load_method, intf_load.firmware_tag); 013e665372733f Viresh Kumar 2016-05-14 453 if (ret) 013e665372733f Viresh Kumar 2016-05-14 454 return ret; 013e665372733f Viresh Kumar 2016-05-14 455 013e665372733f Viresh Kumar 2016-05-14 456 if (!wait_for_completion_timeout(&fw_mgmt->completion, 013e665372733f Viresh Kumar 2016-05-14 457 fw_mgmt->timeout_jiffies)) { 013e665372733f Viresh Kumar 2016-05-14 458 dev_err(fw_mgmt->parent, "timed out waiting for firmware load and validation to finish\n"); 013e665372733f Viresh Kumar 2016-05-14 459 return -ETIMEDOUT; 013e665372733f Viresh Kumar 2016-05-14 460 } 013e665372733f Viresh Kumar 2016-05-14 461 013e665372733f Viresh Kumar 2016-05-14 462 intf_load.status = fw_mgmt->intf_fw_status; 79b140fe2b6f2d Viresh Kumar 2016-05-16 463 intf_load.major = fw_mgmt->intf_fw_major; 79b140fe2b6f2d Viresh Kumar 2016-05-16 464 intf_load.minor = fw_mgmt->intf_fw_minor; 013e665372733f Viresh Kumar 2016-05-14 465 013e665372733f Viresh Kumar 2016-05-14 466 if (copy_to_user(buf, &intf_load, sizeof(intf_load))) 013e665372733f Viresh Kumar 2016-05-14 467 return -EFAULT; 013e665372733f Viresh Kumar 2016-05-14 468 013e665372733f Viresh Kumar 2016-05-14 469 return 0; 013e665372733f Viresh Kumar 2016-05-14 470 case FW_MGMT_IOC_INTF_BACKEND_FW_UPDATE: 013e665372733f Viresh Kumar 2016-05-14 471 if (copy_from_user(&backend_update, buf, 013e665372733f Viresh Kumar 2016-05-14 472 sizeof(backend_update))) 013e665372733f Viresh Kumar 2016-05-14 473 return -EFAULT; 013e665372733f Viresh Kumar 2016-05-14 474 013e665372733f Viresh Kumar 2016-05-14 475 ret = fw_mgmt_backend_fw_update_operation(fw_mgmt, 013e665372733f Viresh Kumar 2016-05-14 476 backend_update.firmware_tag); 013e665372733f Viresh Kumar 2016-05-14 477 if (ret) 013e665372733f Viresh Kumar 2016-05-14 478 return ret; 013e665372733f Viresh Kumar 2016-05-14 479 013e665372733f Viresh Kumar 2016-05-14 480 if (!wait_for_completion_timeout(&fw_mgmt->completion, 013e665372733f Viresh Kumar 2016-05-14 481 fw_mgmt->timeout_jiffies)) { 013e665372733f Viresh Kumar 2016-05-14 482 dev_err(fw_mgmt->parent, "timed out waiting for backend firmware update to finish\n"); 013e665372733f Viresh Kumar 2016-05-14 483 return -ETIMEDOUT; 013e665372733f Viresh Kumar 2016-05-14 484 } 013e665372733f Viresh Kumar 2016-05-14 485 013e665372733f Viresh Kumar 2016-05-14 486 backend_update.status = fw_mgmt->backend_fw_status; 013e665372733f Viresh Kumar 2016-05-14 487 013e665372733f Viresh Kumar 2016-05-14 488 if (copy_to_user(buf, &backend_update, sizeof(backend_update))) 013e665372733f Viresh Kumar 2016-05-14 489 return -EFAULT; 013e665372733f Viresh Kumar 2016-05-14 490 013e665372733f Viresh Kumar 2016-05-14 491 return 0; 013e665372733f Viresh Kumar 2016-05-14 492 case FW_MGMT_IOC_SET_TIMEOUT_MS: 013e665372733f Viresh Kumar 2016-05-14 @493 if (get_user(timeout, (unsigned int __user *)buf)) 013e665372733f Viresh Kumar 2016-05-14 494 return -EFAULT; 013e665372733f Viresh Kumar 2016-05-14 495 013e665372733f Viresh Kumar 2016-05-14 496 if (!timeout) { 013e665372733f Viresh Kumar 2016-05-14 497 dev_err(fw_mgmt->parent, "timeout can't be zero\n"); 013e665372733f Viresh Kumar 2016-05-14 498 return -EINVAL; 013e665372733f Viresh Kumar 2016-05-14 499 } 013e665372733f Viresh Kumar 2016-05-14 500 013e665372733f Viresh Kumar 2016-05-14 501 fw_mgmt->timeout_jiffies = msecs_to_jiffies(timeout); 013e665372733f Viresh Kumar 2016-05-14 502 04f0e6ebd1a2ca Viresh Kumar 2016-05-14 503 return 0; 04f0e6ebd1a2ca Viresh Kumar 2016-05-14 504 case FW_MGMT_IOC_MODE_SWITCH: 04f0e6ebd1a2ca Viresh Kumar 2016-05-14 505 if (!fw_mgmt->intf_fw_loaded) { 04f0e6ebd1a2ca Viresh Kumar 2016-05-14 506 dev_err(fw_mgmt->parent, 04f0e6ebd1a2ca Viresh Kumar 2016-05-14 507 "Firmware not loaded for mode-switch\n"); 04f0e6ebd1a2ca Viresh Kumar 2016-05-14 508 return -EPERM; 04f0e6ebd1a2ca Viresh Kumar 2016-05-14 509 } 04f0e6ebd1a2ca Viresh Kumar 2016-05-14 510 68ee90c29ea406 Viresh Kumar 2016-05-30 511 /* 68ee90c29ea406 Viresh Kumar 2016-05-30 512 * Disallow new ioctls as the fw-core bundle driver is going to 68ee90c29ea406 Viresh Kumar 2016-05-30 513 * get disconnected soon and the character device will get 68ee90c29ea406 Viresh Kumar 2016-05-30 514 * removed. 68ee90c29ea406 Viresh Kumar 2016-05-30 515 */ 04f0e6ebd1a2ca Viresh Kumar 2016-05-14 516 fw_mgmt->mode_switch_started = true; 04f0e6ebd1a2ca Viresh Kumar 2016-05-14 517 c92c1d026b1e13 Viresh Kumar 2016-05-30 518 ret = gb_interface_request_mode_switch(fw_mgmt->connection->intf); c92c1d026b1e13 Viresh Kumar 2016-05-30 519 if (ret) { c92c1d026b1e13 Viresh Kumar 2016-05-30 520 dev_err(fw_mgmt->parent, "Mode-switch failed: %d\n", c92c1d026b1e13 Viresh Kumar 2016-05-30 521 ret); c92c1d026b1e13 Viresh Kumar 2016-05-30 522 fw_mgmt->mode_switch_started = false; c92c1d026b1e13 Viresh Kumar 2016-05-30 523 return ret; c92c1d026b1e13 Viresh Kumar 2016-05-30 524 } c92c1d026b1e13 Viresh Kumar 2016-05-30 525 013e665372733f Viresh Kumar 2016-05-14 526 return 0; 013e665372733f Viresh Kumar 2016-05-14 527 default: 013e665372733f Viresh Kumar 2016-05-14 528 return -ENOTTY; 013e665372733f Viresh Kumar 2016-05-14 529 } 013e665372733f Viresh Kumar 2016-05-14 530 } 013e665372733f Viresh Kumar 2016-05-14 531 :::::: The code at line 493 was first introduced by commit :::::: 013e665372733fafd08599f0fc58ff5f450e4694 greybus: fw-management: Add firmware-management protocol driver :::::: TO: Viresh Kumar <viresh.ku...@linaro.org> :::::: CC: Greg Kroah-Hartman <gre...@google.com> --- 0-DAY CI Kernel Test Service, Intel Corporation https://lists.01.org/hyperkitty/list/kbuild-...@lists.01.org
.config.gz
Description: application/gzip