Re: [PATCH v6 RESEND 2/2] EDAC: Add EDAC driver for loongson memory controller
From: kernel test robot
Date: Sat Oct 19 2024 - 22:05:26 EST
Hi Zhao,
kernel test robot noticed the following build warnings:
[auto build test WARNING on 61124f42dcaa30f58a8b47a2b69ddb80260677c7]
url: https://github.com/intel-lab-lkp/linux/commits/Zhao-Qunqin/dt-bindings-EDAC-for-ls3a5000-memory-controller/20241018-094803
base: 61124f42dcaa30f58a8b47a2b69ddb80260677c7
patch link: https://lore.kernel.org/r/20241018014542.27283-3-zhaoqunqin%40loongson.cn
patch subject: [PATCH v6 RESEND 2/2] EDAC: Add EDAC driver for loongson memory controller
config: arm64-randconfig-r113-20241019 (https://download.01.org/0day-ci/archive/20241020/202410200949.GpnHSLfV-lkp@xxxxxxxxx/config)
compiler: aarch64-linux-gcc (GCC) 14.1.0
reproduce: (https://download.01.org/0day-ci/archive/20241020/202410200949.GpnHSLfV-lkp@xxxxxxxxx/reproduce)
If you fix the issue in a separate patch/commit (i.e. not just a new version of
the same patch/commit), kindly add following tags
| Reported-by: kernel test robot <lkp@xxxxxxxxx>
| Closes: https://lore.kernel.org/oe-kbuild-all/202410200949.GpnHSLfV-lkp@xxxxxxxxx/
sparse warnings: (new ones prefixed by >>)
>> drivers/edac/loongson_edac.c:100:15: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected unsigned long long [usertype] *vbase @@ got void [noderef] __iomem * @@
drivers/edac/loongson_edac.c:100:15: sparse: expected unsigned long long [usertype] *vbase
drivers/edac/loongson_edac.c:100:15: sparse: got void [noderef] __iomem *
vim +100 drivers/edac/loongson_edac.c
91
92 static int edac_probe(struct platform_device *pdev)
93 {
94 struct edac_mc_layer layers[2];
95 struct loongson_edac_pvt *pvt;
96 struct mem_ctl_info *mci;
97 u64 *vbase;
98 int ret;
99
> 100 vbase = devm_platform_ioremap_resource(pdev, 0);
101 if (IS_ERR(vbase))
102 return PTR_ERR(vbase);
103
104 /* allocate a new MC control structure */
105 layers[0].type = EDAC_MC_LAYER_CHANNEL;
106 layers[0].size = 1;
107 layers[0].is_virt_csrow = false;
108 layers[1].type = EDAC_MC_LAYER_SLOT;
109 layers[1].size = 1;
110 layers[1].is_virt_csrow = true;
111 mci = edac_mc_alloc(0, ARRAY_SIZE(layers), layers, sizeof(*pvt));
112 if (mci == NULL)
113 return -ENOMEM;
114
115 mci->mc_idx = edac_device_alloc_index();
116 mci->mtype_cap = MEM_FLAG_RDDR4;
117 mci->edac_ctl_cap = EDAC_FLAG_NONE;
118 mci->edac_cap = EDAC_FLAG_NONE;
119 mci->mod_name = "loongson_edac.c";
120 mci->ctl_name = "loongson_edac_ctl";
121 mci->dev_name = "loongson_edac_dev";
122 mci->ctl_page_to_phys = NULL;
123 mci->pdev = &pdev->dev;
124 mci->error_desc.grain = 8;
125 /* Set the function pointer to an actual operation function */
126 mci->edac_check = edac_check;
127
128 pvt_init(mci, vbase);
129 get_dimm_config(mci);
130
131 ret = edac_mc_add_mc(mci);
132 if (ret) {
133 edac_dbg(0, "MC: failed edac_mc_add_mc()\n");
134 edac_mc_free(mci);
135 return ret;
136 }
137 edac_op_state = EDAC_OPSTATE_POLL;
138
139 return 0;
140 }
141
--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki