Hi Suganath, I love your patch! Perhaps something to improve: [auto build test WARNING on scsi/for-next] [also build test WARNING on mkp-scsi/for-next v5.10-rc5 next-20201123] [If your patch is applied to the wrong git tree, kindly drop us a note. And when submitting patch, we suggest to use '--base' as documented in https://git-scm.com/docs/git-format-patch] url: https://github.com/0day-ci/linux/commits/Suganath-Prabu-S/mpt3sas-Features-to-enhance-driver-debugging/20201124-115842 base: https://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi.git for-next config: i386-randconfig-s001-20201124 (attached as .config) compiler: gcc-9 (Debian 9.3.0-15) 9.3.0 reproduce: # apt-get install sparse # sparse version: v0.6.3-151-g540c2c4b-dirty # https://github.com/0day-ci/linux/commit/25de902f6dde291c7e0266b943d68ff8ed4d683b git remote add linux-review https://github.com/0day-ci/linux git fetch --no-tags linux-review Suganath-Prabu-S/mpt3sas-Features-to-enhance-driver-debugging/20201124-115842 git checkout 25de902f6dde291c7e0266b943d68ff8ed4d683b # save the attached .config to linux build tree make W=1 C=1 CF='-fdiagnostic-prefix -D__CHECK_ENDIAN__' ARCH=i386 If you fix the issue, kindly add following tag as appropriate Reported-by: kernel test robot "sparse warnings: (new ones prefixed by >>)" >> drivers/scsi/mpt3sas/mpt3sas_base.c:633:19: sparse: sparse: incorrect type in assignment (different base types) @@ expected unsigned long long [usertype] TimeStamp @@ got restricted __le64 [usertype] @@ >> drivers/scsi/mpt3sas/mpt3sas_base.c:633:19: sparse: expected unsigned long long [usertype] TimeStamp drivers/scsi/mpt3sas/mpt3sas_base.c:633:19: sparse: got restricted __le64 [usertype] >> drivers/scsi/mpt3sas/mpt3sas_base.c:634:32: sparse: sparse: incorrect type in assignment (different base types) @@ expected restricted __le32 [usertype] Reserved7 @@ got unsigned int [usertype] @@ >> drivers/scsi/mpt3sas/mpt3sas_base.c:634:32: sparse: expected restricted __le32 [usertype] Reserved7 drivers/scsi/mpt3sas/mpt3sas_base.c:634:32: sparse: got unsigned int [usertype] >> drivers/scsi/mpt3sas/mpt3sas_base.c:635:40: sparse: sparse: incorrect type in assignment (different base types) @@ expected restricted __le32 [usertype] IOCParameterValue @@ got unsigned int [usertype] @@ >> drivers/scsi/mpt3sas/mpt3sas_base.c:635:40: sparse: expected restricted __le32 [usertype] IOCParameterValue drivers/scsi/mpt3sas/mpt3sas_base.c:635:40: sparse: got unsigned int [usertype] drivers/scsi/mpt3sas/mpt3sas_base.c:1704:64: sparse: sparse: incorrect type in argument 2 (different address spaces) @@ expected void volatile [noderef] __iomem *addr @@ got unsigned long long [usertype] * @@ drivers/scsi/mpt3sas/mpt3sas_base.c:1704:64: sparse: expected void volatile [noderef] __iomem *addr drivers/scsi/mpt3sas/mpt3sas_base.c:1704:64: sparse: got unsigned long long [usertype] * drivers/scsi/mpt3sas/mpt3sas_base.c:1758:52: sparse: sparse: incorrect type in argument 2 (different address spaces) @@ expected void volatile [noderef] __iomem *addr @@ got unsigned long long [usertype] * @@ drivers/scsi/mpt3sas/mpt3sas_base.c:1758:52: sparse: expected void volatile [noderef] __iomem *addr drivers/scsi/mpt3sas/mpt3sas_base.c:1758:52: sparse: got unsigned long long [usertype] * drivers/scsi/mpt3sas/mpt3sas_base.c:4105:16: sparse: sparse: incorrect type in argument 1 (different base types) @@ expected unsigned int val @@ got restricted __le32 [usertype] @@ drivers/scsi/mpt3sas/mpt3sas_base.c:4105:16: sparse: expected unsigned int val drivers/scsi/mpt3sas/mpt3sas_base.c:4105:16: sparse: got restricted __le32 [usertype] drivers/scsi/mpt3sas/mpt3sas_base.c:4127:16: sparse: sparse: incorrect type in argument 1 (different base types) @@ expected unsigned int val @@ got restricted __le32 [usertype] @@ drivers/scsi/mpt3sas/mpt3sas_base.c:4127:16: sparse: expected unsigned int val drivers/scsi/mpt3sas/mpt3sas_base.c:4127:16: sparse: got restricted __le32 [usertype] drivers/scsi/mpt3sas/mpt3sas_base.c:4150:16: sparse: sparse: incorrect type in argument 1 (different base types) @@ expected unsigned int val @@ got restricted __le32 [usertype] @@ drivers/scsi/mpt3sas/mpt3sas_base.c:4150:16: sparse: expected unsigned int val drivers/scsi/mpt3sas/mpt3sas_base.c:4150:16: sparse: got restricted __le32 [usertype] drivers/scsi/mpt3sas/mpt3sas_base.c:4171:16: sparse: sparse: incorrect type in argument 1 (different base types) @@ expected unsigned int val @@ got restricted __le32 [usertype] @@ drivers/scsi/mpt3sas/mpt3sas_base.c:4171:16: sparse: expected unsigned int val drivers/scsi/mpt3sas/mpt3sas_base.c:4171:16: sparse: got restricted __le32 [usertype] drivers/scsi/mpt3sas/mpt3sas_base.c:6035:24: sparse: sparse: incorrect type in argument 1 (different base types) @@ expected unsigned int val @@ got restricted __le32 [usertype] @@ drivers/scsi/mpt3sas/mpt3sas_base.c:6035:24: sparse: expected unsigned int val drivers/scsi/mpt3sas/mpt3sas_base.c:6035:24: sparse: got restricted __le32 [usertype] drivers/scsi/mpt3sas/mpt3sas_base.c:6054:20: sparse: sparse: cast to restricted __le16 drivers/scsi/mpt3sas/mpt3sas_base.c:6062:20: sparse: sparse: cast to restricted __le16 drivers/scsi/mpt3sas/mpt3sas_base.c:6075:36: sparse: sparse: cast to restricted __le16 drivers/scsi/mpt3sas/mpt3sas_base.c:7213:55: sparse: sparse: incorrect type in argument 2 (different address spaces) @@ expected void volatile [noderef] __iomem *addr @@ got unsigned long long [usertype] * @@ drivers/scsi/mpt3sas/mpt3sas_base.c:7213:55: sparse: expected void volatile [noderef] __iomem *addr drivers/scsi/mpt3sas/mpt3sas_base.c:7213:55: sparse: got unsigned long long [usertype] * vim +633 drivers/scsi/mpt3sas/mpt3sas_base.c 598 599 /** 600 * _base_sync_drv_fw_timestamp - Sync Drive-Fw TimeStamp. 601 * @ioc: Per Adapter Object 602 * 603 * Return nothing. 604 */ 605 static void _base_sync_drv_fw_timestamp(struct MPT3SAS_ADAPTER *ioc) 606 { 607 Mpi26IoUnitControlRequest_t *mpi_request; 608 Mpi26IoUnitControlReply_t *mpi_reply; 609 u16 smid; 610 ktime_t current_time; 611 u64 TimeStamp = 0; 612 u8 issue_reset = 0; 613 614 mutex_lock(&ioc->scsih_cmds.mutex); 615 if (ioc->scsih_cmds.status != MPT3_CMD_NOT_USED) { 616 ioc_err(ioc, "scsih_cmd in use %s\n", __func__); 617 goto out; 618 } 619 ioc->scsih_cmds.status = MPT3_CMD_PENDING; 620 smid = mpt3sas_base_get_smid(ioc, ioc->scsih_cb_idx); 621 if (!smid) { 622 ioc_err(ioc, "Failed obtaining a smid %s\n", __func__); 623 ioc->scsih_cmds.status = MPT3_CMD_NOT_USED; 624 goto out; 625 } 626 mpi_request = mpt3sas_base_get_msg_frame(ioc, smid); 627 ioc->scsih_cmds.smid = smid; 628 memset(mpi_request, 0, sizeof(Mpi26IoUnitControlRequest_t)); 629 mpi_request->Function = MPI2_FUNCTION_IO_UNIT_CONTROL; 630 mpi_request->Operation = MPI26_CTRL_OP_SET_IOC_PARAMETER; 631 mpi_request->IOCParameter = MPI26_SET_IOC_PARAMETER_SYNC_TIMESTAMP; 632 current_time = ktime_get_real(); > 633 TimeStamp = cpu_to_le64(ktime_to_ms(current_time)); > 634 mpi_request->Reserved7 = (u32) (TimeStamp & 0xFFFFFFFF); > 635 mpi_request->IOCParameterValue = (u32) (TimeStamp >> 32); 636 init_completion(&ioc->scsih_cmds.done); 637 ioc->put_smid_default(ioc, smid); 638 dinitprintk(ioc, ioc_info(ioc, 639 "Io Unit Control Sync TimeStamp (sending), @time %lld ms\n", 640 TimeStamp)); 641 wait_for_completion_timeout(&ioc->scsih_cmds.done, 642 MPT3SAS_TIMESYNC_TIMEOUT_SECONDS*HZ); 643 if (!(ioc->scsih_cmds.status & MPT3_CMD_COMPLETE)) { 644 mpt3sas_check_cmd_timeout(ioc, 645 ioc->scsih_cmds.status, mpi_request, 646 sizeof(Mpi2SasIoUnitControlRequest_t)/4, issue_reset); 647 goto issue_host_reset; 648 } 649 if (ioc->scsih_cmds.status & MPT3_CMD_REPLY_VALID) { 650 mpi_reply = ioc->scsih_cmds.reply; 651 dinitprintk(ioc, ioc_info(ioc, 652 "Io Unit Control sync timestamp (complete): ioc_status(0x%04x), loginfo(0x%08x)\n", 653 le16_to_cpu(mpi_reply->IOCStatus), 654 le32_to_cpu(mpi_reply->IOCLogInfo))); 655 } 656 issue_host_reset: 657 if (issue_reset) 658 mpt3sas_base_hard_reset_handler(ioc, FORCE_BIG_HAMMER); 659 ioc->scsih_cmds.status = MPT3_CMD_NOT_USED; 660 out: 661 mutex_unlock(&ioc->scsih_cmds.mutex); 662 } 663 --- 0-DAY CI Kernel Test Service, Intel Corporation https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org