Hi Neeraj, kernel test robot noticed the following build warnings:
[auto build test WARNING on f11a5f89910a7ae970fbce4fdc02d86a8ba8570f] url: https://github.com/intel-lab-lkp/linux/commits/Neeraj-Kumar/nvdimm-label-Introduce-NDD_CXL_LABEL-flag-to-set-cxl-label-format/20250730-202209 base: f11a5f89910a7ae970fbce4fdc02d86a8ba8570f patch link: https://lore.kernel.org/r/20250730121209.303202-6-s.neeraj%40samsung.com patch subject: [PATCH V2 05/20] nvdimm/region_label: Add region label updation routine config: x86_64-randconfig-121-20250731 (https://download.01.org/0day-ci/archive/20250731/202507312211.ovrqdhyy-...@intel.com/config) compiler: gcc-12 (Debian 12.2.0-14+deb12u1) 12.2.0 reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20250731/202507312211.ovrqdhyy-...@intel.com/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 <l...@intel.com> | Closes: https://lore.kernel.org/oe-kbuild-all/202507312211.ovrqdhyy-...@intel.com/ sparse warnings: (new ones prefixed by >>) >> drivers/nvdimm/label.c:1184:25: sparse: sparse: incorrect type in assignment >> (different base types) @@ expected restricted __le32 [usertype] align @@ >> got restricted __le16 [usertype] @@ drivers/nvdimm/label.c:1184:25: sparse: expected restricted __le32 [usertype] align drivers/nvdimm/label.c:1184:25: sparse: got restricted __le16 [usertype] drivers/nvdimm/label.c: note: in included file (through drivers/nvdimm/nd-core.h): drivers/nvdimm/nd.h:314:37: sparse: sparse: incorrect type in assignment (different base types) @@ expected restricted __le32 [usertype] align @@ got restricted __le16 [usertype] @@ drivers/nvdimm/nd.h:314:37: sparse: expected restricted __le32 [usertype] align drivers/nvdimm/nd.h:314:37: sparse: got restricted __le16 [usertype] vim +1184 drivers/nvdimm/label.c 1139 1140 static int __pmem_region_label_update(struct nd_region *nd_region, 1141 struct nd_mapping *nd_mapping, int pos, unsigned long flags) 1142 { 1143 struct nd_interleave_set *nd_set = nd_region->nd_set; 1144 struct nvdimm_drvdata *ndd = to_ndd(nd_mapping); 1145 struct nd_lsa_label *nd_label; 1146 struct cxl_region_label *rg_label; 1147 struct nd_namespace_index *nsindex; 1148 struct nd_label_ent *label_ent; 1149 unsigned long *free; 1150 u32 nslot, slot; 1151 size_t offset; 1152 int rc; 1153 uuid_t tmp; 1154 1155 if (!preamble_next(ndd, &nsindex, &free, &nslot)) 1156 return -ENXIO; 1157 1158 /* allocate and write the label to the staging (next) index */ 1159 slot = nd_label_alloc_slot(ndd); 1160 if (slot == UINT_MAX) 1161 return -ENXIO; 1162 dev_dbg(ndd->dev, "allocated: %d\n", slot); 1163 1164 nd_label = to_label(ndd, slot); 1165 1166 memset(nd_label, 0, sizeof_namespace_label(ndd)); 1167 rg_label = &nd_label->rg_label; 1168 1169 /* Set Region Label Format identification UUID */ 1170 uuid_parse(CXL_REGION_UUID, &tmp); 1171 export_uuid(nd_label->rg_label.type, &tmp); 1172 1173 /* Set Current Region Label UUID */ 1174 export_uuid(nd_label->rg_label.uuid, &nd_set->uuid); 1175 1176 rg_label->flags = __cpu_to_le32(flags); 1177 rg_label->nlabel = __cpu_to_le16(nd_region->ndr_mappings); 1178 rg_label->position = __cpu_to_le16(pos); 1179 rg_label->dpa = __cpu_to_le64(nd_mapping->start); 1180 rg_label->rawsize = __cpu_to_le64(nd_mapping->size); 1181 rg_label->hpa = __cpu_to_le64(nd_set->res->start); 1182 rg_label->slot = __cpu_to_le32(slot); 1183 rg_label->ig = __cpu_to_le32(nd_set->interleave_granularity); > 1184 rg_label->align = __cpu_to_le16(0); 1185 1186 /* Update fletcher64 Checksum */ 1187 rgl_calculate_checksum(ndd, rg_label); 1188 1189 /* update label */ 1190 offset = nd_label_offset(ndd, nd_label); 1191 rc = nvdimm_set_config_data(ndd, offset, nd_label, 1192 sizeof_namespace_label(ndd)); 1193 if (rc < 0) { 1194 nd_label_free_slot(ndd, slot); 1195 return rc; 1196 } 1197 1198 /* Garbage collect the previous label */ 1199 guard(mutex)(&nd_mapping->lock); 1200 list_for_each_entry(label_ent, &nd_mapping->labels, list) { 1201 if (!label_ent->label) 1202 continue; 1203 if (rgl_uuid_equal(&label_ent->label->rg_label, &nd_set->uuid)) 1204 reap_victim(nd_mapping, label_ent); 1205 } 1206 1207 /* update index */ 1208 rc = nd_label_write_index(ndd, ndd->ns_next, 1209 nd_inc_seq(__le32_to_cpu(nsindex->seq)), 0); 1210 if (rc) 1211 return rc; 1212 1213 list_for_each_entry(label_ent, &nd_mapping->labels, list) 1214 if (!label_ent->label) { 1215 label_ent->label = nd_label; 1216 nd_label = NULL; 1217 break; 1218 } 1219 dev_WARN_ONCE(&nd_region->dev, nd_label, 1220 "failed to track label: %d\n", 1221 to_slot(ndd, nd_label)); 1222 if (nd_label) 1223 rc = -ENXIO; 1224 1225 return rc; 1226 } 1227 -- 0-DAY CI Kernel Test Service https://github.com/intel/lkp-tests/wiki