* [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.