Re: [PATCH 11/18] megaraid_sas: Offload Aero RAID5/6 division calculations to driver

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi Chandrakanth,

Thank you for the patch! Perhaps something to improve:

[auto build test WARNING on mkp-scsi/for-next]
[also build test WARNING on next-20190618]
[cannot apply to v5.2-rc5]
[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/Chandrakanth-Patil/megaraid_sas-driver-updates-to-07-710-06-00-rc1/20190618-174435
base:   https://git.kernel.org/pub/scm/linux/kernel/git/mkp/scsi.git for-next
reproduce:
        # apt-get install sparse
        # sparse version: v0.6.1-rc1-7-g2b96cd8-dirty
        make ARCH=x86_64 allmodconfig
        make C=1 CF='-fdiagnostic-prefix -D__CHECK_ENDIAN__'

If you fix the issue, kindly add following tag
Reported-by: kbuild test robot <lkp@xxxxxxxxx>


sparse warnings: (new ones prefixed by >>)

   drivers/scsi/megaraid/megaraid_sas_fp.c:752:60: sparse: sparse: incorrect type in assignment (different base types) @@    expected unsigned short [usertype] r1_alt_dev_handle @@    got short [usertype] r1_alt_dev_handle @@
   drivers/scsi/megaraid/megaraid_sas_fp.c:752:60: sparse:    expected unsigned short [usertype] r1_alt_dev_handle
   drivers/scsi/megaraid/megaraid_sas_fp.c:752:60: sparse:    got restricted __le16
   drivers/scsi/megaraid/megaraid_sas_fp.c:194:72: sparse: sparse: cast to restricted __le32
   drivers/scsi/megaraid/megaraid_sas_fp.c:199:33: sparse: sparse: cast to restricted __le16
   drivers/scsi/megaraid/megaraid_sas_fp.c:207:25: sparse: sparse: cast to restricted __le32
   drivers/scsi/megaraid/megaraid_sas_fp.c:208:25: sparse: sparse: cast to restricted __le32
   drivers/scsi/megaraid/megaraid_sas_fp.c:210:33: sparse: sparse: cast to restricted __le32
   drivers/scsi/megaraid/megaraid_sas_fp.c:211:33: sparse: sparse: cast to restricted __le32
   drivers/scsi/megaraid/megaraid_sas_fp.c:214:79: sparse: sparse: cast to restricted __le32
   drivers/scsi/megaraid/megaraid_sas_fp.c:215:33: sparse: sparse: cast to restricted __le32
   drivers/scsi/megaraid/megaraid_sas_fp.c:223:41: sparse: sparse: cast to restricted __le32
   drivers/scsi/megaraid/megaraid_sas_fp.c:224:49: sparse: sparse: cast to restricted __le32
   drivers/scsi/megaraid/megaraid_sas_fp.c:226:49: sparse: sparse: cast to restricted __le16
   drivers/scsi/megaraid/megaraid_sas_fp.c:232:58: sparse: sparse: cast to restricted __le32
   drivers/scsi/megaraid/megaraid_sas_fp.c:233:33: sparse: sparse: cast to restricted __le32
   drivers/scsi/megaraid/megaraid_sas_fp.c:242:41: sparse: sparse: cast to restricted __le32
   drivers/scsi/megaraid/megaraid_sas_fp.c:243:33: sparse: sparse: cast to restricted __le32
   drivers/scsi/megaraid/megaraid_sas_fp.c:868:60: sparse: sparse: incorrect type in assignment (different base types) @@    expected unsigned short [usertype] r1_alt_dev_handle @@    got short [usertype] r1_alt_dev_handle @@
   drivers/scsi/megaraid/megaraid_sas_fp.c:868:60: sparse:    expected unsigned short [usertype] r1_alt_dev_handle
   drivers/scsi/megaraid/megaraid_sas_fp.c:868:60: sparse:    got restricted __le16
>> drivers/scsi/megaraid/megaraid_sas_fp.c:964:41: sparse: sparse: incorrect type in assignment (different base types) @@    expected unsigned long long [usertype] reg_lock_row_lba @@    got nsigned long long [usertype] reg_lock_row_lba @@
>> drivers/scsi/megaraid/megaraid_sas_fp.c:964:41: sparse:    expected unsigned long long [usertype] reg_lock_row_lba
   drivers/scsi/megaraid/megaraid_sas_fp.c:964:41: sparse:    got restricted __le64 [usertype]
   drivers/scsi/megaraid/megaraid_sas_fp.c:1201:28: sparse: sparse: restricted __le16 degrades to integer
   drivers/scsi/megaraid/megaraid_sas_fp.c:1392:24: sparse: sparse: incorrect type in assignment (different base types) @@    expected unsigned short [usertype] pd1_dev_handle @@    got short [usertype] pd1_dev_handle @@
   drivers/scsi/megaraid/megaraid_sas_fp.c:1392:24: sparse:    expected unsigned short [usertype] pd1_dev_handle
   drivers/scsi/megaraid/megaraid_sas_fp.c:1392:24: sparse:    got restricted __le16
   drivers/scsi/megaraid/megaraid_sas_fp.c:1361:4: sparse: sparse: symbol 'megasas_get_best_arm_pd' was not declared. Should it be static?

vim +964 drivers/scsi/megaraid/megaraid_sas_fp.c

   903	
   904	/*
   905	 * mr_get_phy_params_r56_rmw -  Calculate parameters for R56 CTIO write operation
   906	 * @instance:			Adapter soft state
   907	 * @ld:				LD index
   908	 * @stripNo:			Strip Number
   909	 * @io_info:			IO info structure pointer
   910	 * pRAID_Context:		RAID context pointer
   911	 * map:				RAID map pointer
   912	 *
   913	 * This routine calculates the logical arm, data Arm, row number and parity arm
   914	 * for R56 CTIO write operation.
   915	 */
   916	static void mr_get_phy_params_r56_rmw(struct megasas_instance *instance,
   917				    u32 ld, u64 stripNo,
   918				    struct IO_REQUEST_INFO *io_info,
   919				    struct RAID_CONTEXT_G35 *pRAID_Context,
   920				    struct MR_DRV_RAID_MAP_ALL *map)
   921	{
   922		struct MR_LD_RAID  *raid = MR_LdRaidGet(ld, map);
   923		u8          span, dataArms, arms, dataArm, logArm;
   924		s8          rightmostParityArm, PParityArm;
   925		u64         rowNum;
   926		u64 *pdBlock = &io_info->pdBlock;
   927	
   928		dataArms = raid->rowDataSize;
   929		arms = raid->rowSize;
   930	
   931		rowNum =  mega_div64_32(stripNo, dataArms);
   932		/* parity disk arm, first arm is 0 */
   933		rightmostParityArm = (arms - 1) - mega_mod64(rowNum, arms);
   934	
   935		/* logical arm within row */
   936		logArm =  mega_mod64(stripNo, dataArms);
   937		/* physical arm for data */
   938		dataArm = mega_mod64((rightmostParityArm + 1 + logArm), arms);
   939	
   940		if (raid->spanDepth == 1) {
   941			span = 0;
   942		} else {
   943			span = (u8)MR_GetSpanBlock(ld, rowNum, pdBlock, map);
   944			if (span == SPAN_INVALID)
   945				return;
   946		}
   947	
   948		if (raid->level == 6) {
   949			/* P Parity arm, note this can go negative adjust if negative */
   950			PParityArm = (arms - 2) - mega_mod64(rowNum, arms);
   951	
   952			if (PParityArm < 0)
   953				PParityArm += arms;
   954	
   955			/* rightmostParityArm is P-Parity for RAID 5 and Q-Parity for RAID */
   956			pRAID_Context->flow_specific.r56_arm_map = rightmostParityArm;
   957			pRAID_Context->flow_specific.r56_arm_map |=
   958					    (u16)(PParityArm << RAID_CTX_R56_P_ARM_SHIFT);
   959		} else {
   960			pRAID_Context->flow_specific.r56_arm_map |=
   961					    (u16)(rightmostParityArm << RAID_CTX_R56_P_ARM_SHIFT);
   962		}
   963	
 > 964		pRAID_Context->reg_lock_row_lba = cpu_to_le64(rowNum);
   965		pRAID_Context->flow_specific.r56_arm_map |=
   966					   (u16)(logArm << RAID_CTX_R56_LOG_ARM_SHIFT);
   967		cpu_to_le16s(&pRAID_Context->flow_specific.r56_arm_map);
   968		pRAID_Context->span_arm = (span << RAID_CTX_SPANARM_SPAN_SHIFT) | dataArm;
   969		pRAID_Context->raid_flags = (MR_RAID_FLAGS_IO_SUB_TYPE_R56_DIV_OFFLOAD <<
   970					    MR_RAID_CTX_RAID_FLAGS_IO_SUB_TYPE_SHIFT);
   971	
   972		return;
   973	}
   974	

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



[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [SCSI Target Devel]     [Linux SCSI Target Infrastructure]     [Kernel Newbies]     [IDE]     [Security]     [Git]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux ATA RAID]     [Linux IIO]     [Samba]     [Device Mapper]

  Powered by Linux