All of lore.kernel.org
 help / color / mirror / Atom feed
* [ogabbay:habanalabs-next 52/62] drivers/misc/habanalabs/gaudi/gaudi.c:6865:26: sparse: sparse: cast to restricted __le32
@ 2020-11-19  6:26 kernel test robot
  0 siblings, 0 replies; only message in thread
From: kernel test robot @ 2020-11-19  6:26 UTC (permalink / raw)
  To: kbuild-all

[-- Attachment #1: Type: text/plain, Size: 8066 bytes --]

tree:   https://git.kernel.org/pub/scm/linux/kernel/git/ogabbay/linux.git habanalabs-next
head:   f3fad4c1da9034b716430407921cbd316d8c76dd
commit: 0724eea689c60f1f277a5e3273eed48339dfc196 [52/62] habanalabs/gaudi: fetch HBM ecc info from FW
config: i386-randconfig-s001-20201118 (attached as .config)
compiler: gcc-9 (Debian 9.3.0-15) 9.3.0
reproduce:
        # apt-get install sparse
        # sparse version: v0.6.3-123-g626c4742-dirty
        # https://git.kernel.org/pub/scm/linux/kernel/git/ogabbay/linux.git/commit/?id=0724eea689c60f1f277a5e3273eed48339dfc196
        git remote add ogabbay https://git.kernel.org/pub/scm/linux/kernel/git/ogabbay/linux.git
        git fetch --no-tags ogabbay habanalabs-next
        git checkout 0724eea689c60f1f277a5e3273eed48339dfc196
        # 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 <lkp@intel.com>


"sparse warnings: (new ones prefixed by >>)"
   drivers/misc/habanalabs/gaudi/gaudi.c:3094:6: sparse: sparse: symbol 'gaudi_init_nic_qmans' was not declared. Should it be static?
>> drivers/misc/habanalabs/gaudi/gaudi.c:6865:26: sparse: sparse: cast to restricted __le32
>> drivers/misc/habanalabs/gaudi/gaudi.c:6865:26: sparse: sparse: restricted __le32 degrades to integer
>> drivers/misc/habanalabs/gaudi/gaudi.c:6865:26: sparse: sparse: restricted __le32 degrades to integer
   drivers/misc/habanalabs/gaudi/gaudi.c:6867:26: sparse: sparse: cast to restricted __le32
   drivers/misc/habanalabs/gaudi/gaudi.c:6867:26: sparse: sparse: restricted __le32 degrades to integer
   drivers/misc/habanalabs/gaudi/gaudi.c:6867:26: sparse: sparse: restricted __le32 degrades to integer
   drivers/misc/habanalabs/gaudi/gaudi.c:6869:26: sparse: sparse: cast to restricted __le32
   drivers/misc/habanalabs/gaudi/gaudi.c:6869:26: sparse: sparse: restricted __le32 degrades to integer
   drivers/misc/habanalabs/gaudi/gaudi.c:6869:26: sparse: sparse: restricted __le32 degrades to integer
   drivers/misc/habanalabs/gaudi/gaudi.c:6871:24: sparse: sparse: cast to restricted __le32
   drivers/misc/habanalabs/gaudi/gaudi.c:6871:24: sparse: sparse: restricted __le32 degrades to integer
   drivers/misc/habanalabs/gaudi/gaudi.c:6871:24: sparse: sparse: restricted __le32 degrades to integer
   drivers/misc/habanalabs/gaudi/gaudi.c:6873:24: sparse: sparse: cast to restricted __le32
   drivers/misc/habanalabs/gaudi/gaudi.c:6873:24: sparse: sparse: restricted __le32 degrades to integer
   drivers/misc/habanalabs/gaudi/gaudi.c:6873:24: sparse: sparse: restricted __le32 degrades to integer
   drivers/misc/habanalabs/gaudi/gaudi.c:6875:24: sparse: sparse: cast to restricted __le32
   drivers/misc/habanalabs/gaudi/gaudi.c:6875:24: sparse: sparse: restricted __le32 degrades to integer
   drivers/misc/habanalabs/gaudi/gaudi.c:6875:24: sparse: sparse: restricted __le32 degrades to integer
   drivers/misc/habanalabs/gaudi/gaudi.c:6877:22: sparse: sparse: cast to restricted __le32
   drivers/misc/habanalabs/gaudi/gaudi.c:6877:22: sparse: sparse: restricted __le32 degrades to integer
   drivers/misc/habanalabs/gaudi/gaudi.c:6877:22: sparse: sparse: restricted __le32 degrades to integer
   drivers/misc/habanalabs/gaudi/gaudi.c:7906:6: sparse: sparse: symbol 'gaudi_ctx_fini' was not declared. Should it be static?
   drivers/misc/habanalabs/gaudi/gaudi.c:3660:27: sparse: sparse: cast truncates bits from constant value (7ff0000000 becomes f0000000)

vim +6865 drivers/misc/habanalabs/gaudi/gaudi.c

  6852	
  6853	static int gaudi_hbm_read_interrupts(struct hl_device *hdev, int device,
  6854				struct hl_eq_hbm_ecc_data *hbm_ecc_data)
  6855	{
  6856		u32 base, val, val2, wr_par, rd_par, ca_par, derr, serr, type, ch;
  6857		int err = 0;
  6858	
  6859		if (!hdev->asic_prop.fw_security_disabled) {
  6860			if (!hbm_ecc_data) {
  6861				dev_err(hdev->dev, "No FW ECC data");
  6862				return 0;
  6863			}
  6864	
> 6865			wr_par = FIELD_GET(CPUCP_PKT_HBM_ECC_INFO_WR_PAR_MASK,
  6866					hbm_ecc_data->hbm_ecc_info);
  6867			rd_par = FIELD_GET(CPUCP_PKT_HBM_ECC_INFO_RD_PAR_MASK,
  6868					hbm_ecc_data->hbm_ecc_info);
  6869			ca_par = FIELD_GET(CPUCP_PKT_HBM_ECC_INFO_CA_PAR_MASK,
  6870					hbm_ecc_data->hbm_ecc_info);
  6871			derr = FIELD_GET(CPUCP_PKT_HBM_ECC_INFO_DERR_MASK,
  6872					hbm_ecc_data->hbm_ecc_info);
  6873			serr = FIELD_GET(CPUCP_PKT_HBM_ECC_INFO_SERR_MASK,
  6874					hbm_ecc_data->hbm_ecc_info);
  6875			type = FIELD_GET(CPUCP_PKT_HBM_ECC_INFO_TYPE_MASK,
  6876					hbm_ecc_data->hbm_ecc_info);
  6877			ch = FIELD_GET(CPUCP_PKT_HBM_ECC_INFO_HBM_CH_MASK,
  6878					hbm_ecc_data->hbm_ecc_info);
  6879	
  6880			dev_err(hdev->dev,
  6881				"HBM%d pc%d interrupts info: WR_PAR=%d, RD_PAR=%d, CA_PAR=%d, SERR=%d, DERR=%d\n",
  6882				device, ch, wr_par, rd_par, ca_par, serr, derr);
  6883	
  6884			err = 1;
  6885	
  6886			return 0;
  6887		}
  6888	
  6889		base = GAUDI_HBM_CFG_BASE + device * GAUDI_HBM_CFG_OFFSET;
  6890		for (ch = 0 ; ch < GAUDI_HBM_CHANNELS ; ch++) {
  6891			val = RREG32_MASK(base + ch * 0x1000 + 0x06C, 0x0000FFFF);
  6892			val = (val & 0xFF) | ((val >> 8) & 0xFF);
  6893			if (val) {
  6894				err = 1;
  6895				dev_err(hdev->dev,
  6896					"HBM%d pc%d interrupts info: WR_PAR=%d, RD_PAR=%d, CA_PAR=%d, SERR=%d, DERR=%d\n",
  6897					device, ch * 2, val & 0x1, (val >> 1) & 0x1,
  6898					(val >> 2) & 0x1, (val >> 3) & 0x1,
  6899					(val >> 4) & 0x1);
  6900	
  6901				val2 = RREG32(base + ch * 0x1000 + 0x060);
  6902				dev_err(hdev->dev,
  6903					"HBM%d pc%d ECC info: 1ST_ERR_ADDR=0x%x, 1ST_ERR_TYPE=%d, SEC_CONT_CNT=%d, SEC_CNT=%d, DEC_CNT=%d\n",
  6904					device, ch * 2,
  6905					RREG32(base + ch * 0x1000 + 0x064),
  6906					(val2 & 0x200) >> 9, (val2 & 0xFC00) >> 10,
  6907					(val2 & 0xFF0000) >> 16,
  6908					(val2 & 0xFF000000) >> 24);
  6909			}
  6910	
  6911			val = RREG32_MASK(base + ch * 0x1000 + 0x07C, 0x0000FFFF);
  6912			val = (val & 0xFF) | ((val >> 8) & 0xFF);
  6913			if (val) {
  6914				err = 1;
  6915				dev_err(hdev->dev,
  6916					"HBM%d pc%d interrupts info: WR_PAR=%d, RD_PAR=%d, CA_PAR=%d, SERR=%d, DERR=%d\n",
  6917					device, ch * 2 + 1, val & 0x1, (val >> 1) & 0x1,
  6918					(val >> 2) & 0x1, (val >> 3) & 0x1,
  6919					(val >> 4) & 0x1);
  6920	
  6921				val2 = RREG32(base + ch * 0x1000 + 0x070);
  6922				dev_err(hdev->dev,
  6923					"HBM%d pc%d ECC info: 1ST_ERR_ADDR=0x%x, 1ST_ERR_TYPE=%d, SEC_CONT_CNT=%d, SEC_CNT=%d, DEC_CNT=%d\n",
  6924					device, ch * 2 + 1,
  6925					RREG32(base + ch * 0x1000 + 0x074),
  6926					(val2 & 0x200) >> 9, (val2 & 0xFC00) >> 10,
  6927					(val2 & 0xFF0000) >> 16,
  6928					(val2 & 0xFF000000) >> 24);
  6929			}
  6930	
  6931			/* Clear interrupts */
  6932			RMWREG32(base + (ch * 0x1000) + 0x060, 0x1C8, 0x1FF);
  6933			RMWREG32(base + (ch * 0x1000) + 0x070, 0x1C8, 0x1FF);
  6934			WREG32(base + (ch * 0x1000) + 0x06C, 0x1F1F);
  6935			WREG32(base + (ch * 0x1000) + 0x07C, 0x1F1F);
  6936			RMWREG32(base + (ch * 0x1000) + 0x060, 0x0, 0xF);
  6937			RMWREG32(base + (ch * 0x1000) + 0x070, 0x0, 0xF);
  6938		}
  6939	
  6940		val  = RREG32(base + 0x8F30);
  6941		val2 = RREG32(base + 0x8F34);
  6942		if (val | val2) {
  6943			err = 1;
  6944			dev_err(hdev->dev,
  6945				"HBM %d MC SRAM SERR info: Reg 0x8F30=0x%x, Reg 0x8F34=0x%x\n",
  6946				device, val, val2);
  6947		}
  6948		val  = RREG32(base + 0x8F40);
  6949		val2 = RREG32(base + 0x8F44);
  6950		if (val | val2) {
  6951			err = 1;
  6952			dev_err(hdev->dev,
  6953				"HBM %d MC SRAM DERR info: Reg 0x8F40=0x%x, Reg 0x8F44=0x%x\n",
  6954				device, val, val2);
  6955		}
  6956	
  6957		return err;
  6958	}
  6959	

---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all(a)lists.01.org

[-- Attachment #2: config.gz --]
[-- Type: application/gzip, Size: 32610 bytes --]

^ permalink raw reply	[flat|nested] only message in thread

only message in thread, other threads:[~2020-11-19  6:26 UTC | newest]

Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-11-19  6:26 [ogabbay:habanalabs-next 52/62] drivers/misc/habanalabs/gaudi/gaudi.c:6865:26: sparse: sparse: cast to restricted __le32 kernel test robot

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.