Hi Bradley, I love your patch! Perhaps something to improve: [auto build test WARNING on jejb-scsi/for-next] [also build test WARNING on mkp-scsi/for-next linus/master v5.19-rc8 next-20220726] [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#_base_tree_information] url: https://github.com/intel-lab-lkp/linux/commits/Bradley-Grove/scsi-mpt3sas-Add-support-for-ATTO-ExpressSAS-H12xx-GT-devices/20220727-020431 base: https://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi.git for-next config: arm64-randconfig-s032-20220724 (https://download.01.org/0day-ci/archive/20220727/202207272120.BKaTzCmC-lkp@xxxxxxxxx/config) compiler: aarch64-linux-gcc (GCC) 12.1.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.4-39-gce1a6720-dirty # https://github.com/intel-lab-lkp/linux/commit/7174cbb8a0179d86947dea7c91c71788ebdf3aa1 git remote add linux-review https://github.com/intel-lab-lkp/linux git fetch --no-tags linux-review Bradley-Grove/scsi-mpt3sas-Add-support-for-ATTO-ExpressSAS-H12xx-GT-devices/20220727-020431 git checkout 7174cbb8a0179d86947dea7c91c71788ebdf3aa1 # save the config file mkdir build_dir && cp config build_dir/.config COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-12.1.0 make.cross C=1 CF='-fdiagnostic-prefix -D__CHECK_ENDIAN__' O=build_dir ARCH=arm64 SHELL=/bin/bash drivers/scsi/mpt3sas/ If you fix the issue, kindly add following tag where applicable Reported-by: kernel test robot <lkp@xxxxxxxxx> sparse warnings: (new ones prefixed by >>) >> drivers/scsi/mpt3sas/mpt3sas_base.c:5505:21: sparse: sparse: cast to restricted __be64 >> drivers/scsi/mpt3sas/mpt3sas_base.c:5553:52: sparse: sparse: incorrect type in assignment (different base types) @@ expected restricted __le64 [usertype] ReassignmentWWID @@ got unsigned long long @@ drivers/scsi/mpt3sas/mpt3sas_base.c:5553:52: sparse: expected restricted __le64 [usertype] ReassignmentWWID drivers/scsi/mpt3sas/mpt3sas_base.c:5553:52: sparse: got unsigned long long >> drivers/scsi/mpt3sas/mpt3sas_base.c:5554:58: sparse: sparse: incorrect type in assignment (different base types) @@ expected restricted __le64 [usertype] ReassignmentDeviceName @@ got unsigned long long @@ drivers/scsi/mpt3sas/mpt3sas_base.c:5554:58: sparse: expected restricted __le64 [usertype] ReassignmentDeviceName drivers/scsi/mpt3sas/mpt3sas_base.c:5554:58: sparse: got unsigned long long vim +5505 drivers/scsi/mpt3sas/mpt3sas_base.c 5477 5478 /** 5479 * mpt3sas_atto_get_sas_addr - get the ATTO SAS address from mfg page 1 5480 * 5481 * @ioc : per adapter object 5482 * @*sas_addr : return sas address 5483 * Return: 0 for success, non-zero for failure. 5484 */ 5485 static int 5486 mpt3sas_atto_get_sas_addr(struct MPT3SAS_ADAPTER *ioc, u64 *sas_addr) 5487 { 5488 Mpi2ManufacturingPage1_t mfg_pg1; 5489 Mpi2ConfigReply_t mpi_reply; 5490 struct ATTO_SAS_NVRAM *nvram; 5491 int r; 5492 5493 r = mpt3sas_config_get_manufacturing_pg1(ioc, &mpi_reply, &mfg_pg1); 5494 if (r) { 5495 ioc_err(ioc, "Failed to read manufacturing page 1\n"); 5496 return r; 5497 } 5498 5499 /* validate nvram */ 5500 nvram = (struct ATTO_SAS_NVRAM *) mfg_pg1.VPD; 5501 r = mpt3sas_atto_validate_nvram(ioc, nvram); 5502 if (r) 5503 return r; 5504 > 5505 *sas_addr = be64_to_cpu(*((u64 *)nvram->SasAddr)); 5506 return r; 5507 } 5508 5509 /** 5510 * mpt3sas_atto_init - perform initializaion for ATTO branded 5511 * adapter. 5512 * @ioc : per adapter object 5513 * 5514 * Return: 0 for success, non-zero for failure. 5515 */ 5516 static int 5517 mpt3sas_atto_init(struct MPT3SAS_ADAPTER *ioc) 5518 { 5519 int sz = 0; 5520 Mpi2BiosPage4_t *bios_pg4 = NULL; 5521 Mpi2ConfigReply_t mpi_reply; 5522 int r; 5523 int ix; 5524 u64 sas_addr; 5525 5526 r = mpt3sas_atto_get_sas_addr(ioc, &sas_addr); 5527 if (r) 5528 return r; 5529 5530 /* get header first to get size */ 5531 r = mpt3sas_config_get_bios_pg4(ioc, &mpi_reply, NULL, 0); 5532 if (r) { 5533 ioc_err(ioc, "Failed to read ATTO bios page 4 header.\n"); 5534 return r; 5535 } 5536 5537 sz = mpi_reply.Header.PageLength * sizeof(u32); 5538 bios_pg4 = kzalloc(sz, GFP_KERNEL); 5539 if (!bios_pg4) { 5540 ioc_err(ioc, "Failed to allocate memory for ATTO bios page.\n"); 5541 return -ENOMEM; 5542 } 5543 5544 /* read bios page 4 */ 5545 r = mpt3sas_config_get_bios_pg4(ioc, &mpi_reply, bios_pg4, sz); 5546 if (r) { 5547 ioc_err(ioc, "Failed to read ATTO bios page 4\n"); 5548 goto out; 5549 } 5550 5551 /* Update bios page 4 with the ATTO WWID */ 5552 for (ix = 0; ix < bios_pg4->NumPhys; ix++) { > 5553 bios_pg4->Phy[ix].ReassignmentWWID = sas_addr + ix; > 5554 bios_pg4->Phy[ix].ReassignmentDeviceName = 5555 sas_addr + ATTO_SAS_ADDR_DEVNAME_BIAS; 5556 } 5557 r = mpt3sas_config_set_bios_pg4(ioc, &mpi_reply, bios_pg4, sz); 5558 5559 out: 5560 kfree(bios_pg4); 5561 return r; 5562 } 5563 -- 0-DAY CI Kernel Test Service https://01.org/lkp