Hi Stanislav, kernel test robot noticed the following build warnings:
[auto build test WARNING on linus/master] [also build test WARNING on next-20251010] [cannot apply to v6.17] [If your patch is applied to the wrong git tree, kindly drop us a note. And when submitting patch, we suggest to use '--base' as documented in https://git-scm.com/docs/git-format-patch#_base_tree_information] url: https://github.com/intel-lab-lkp/linux/commits/Stanislav-Kinsburskii/Drivers-hv-Refactor-and-rename-memory-region-handling-functions/20251010-111917 base: linus/master patch link: https://lore.kernel.org/r/175976319844.16834.4747024333732752980.stgit%40skinsburskii-cloud-desktop.internal.cloudapp.net patch subject: [PATCH v4 5/5] Drivers: hv: Add support for movable memory regions config: x86_64-randconfig-006-20251010 (https://download.01.org/0day-ci/archive/20251011/[email protected]/config) compiler: clang version 20.1.8 (https://github.com/llvm/llvm-project 87f0227cb60147a26a1eeb4fb06e3b505e9c7261) reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20251011/[email protected]/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 <[email protected]> | Closes: https://lore.kernel.org/oe-kbuild-all/[email protected]/ All warnings (new ones prefixed by >>): >> drivers/hv/mshv_root_main.c:1410:11: warning: variable 'ret' is used >> uninitialized whenever 'if' condition is true [-Wsometimes-uninitialized] 1410 | else if (!mutex_trylock(®ion->mutex)) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ drivers/hv/mshv_root_main.c:1434:12: note: uninitialized use occurs here 1434 | WARN_ONCE(ret, | ^~~ include/asm-generic/bug.h:152:18: note: expanded from macro 'WARN_ONCE' 152 | DO_ONCE_LITE_IF(condition, WARN, 1, format) | ^~~~~~~~~ include/linux/once_lite.h:28:27: note: expanded from macro 'DO_ONCE_LITE_IF' 28 | bool __ret_do_once = !!(condition); \ | ^~~~~~~~~ drivers/hv/mshv_root_main.c:1410:7: note: remove the 'if' if its condition is always false 1410 | else if (!mutex_trylock(®ion->mutex)) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 1411 | goto out_fail; | ~~~~~~~~~~~~~ drivers/hv/mshv_root_main.c:1406:9: note: initialize the variable 'ret' to silence this warning 1406 | int ret; | ^ | = 0 1 warning generated. vim +1410 drivers/hv/mshv_root_main.c 1377 1378 /** 1379 * mshv_region_interval_invalidate - Invalidate a range of memory region 1380 * @mni: Pointer to the mmu_interval_notifier structure 1381 * @range: Pointer to the mmu_notifier_range structure 1382 * @cur_seq: Current sequence number for the interval notifier 1383 * 1384 * This function invalidates a memory region by remapping its pages with 1385 * no access permissions. It locks the region's mutex to ensure thread safety 1386 * and updates the sequence number for the interval notifier. If the range 1387 * is blockable, it uses a blocking lock; otherwise, it attempts a non-blocking 1388 * lock and returns false if unsuccessful. 1389 * 1390 * NOTE: Failure to invalidate a region is a serious error, as the pages will 1391 * be considered freed while they are still mapped by the hypervisor. 1392 * Any attempt to access such pages will likely crash the system. 1393 * 1394 * Return: true if the region was successfully invalidated, false otherwise. 1395 */ 1396 static bool 1397 mshv_region_interval_invalidate(struct mmu_interval_notifier *mni, 1398 const struct mmu_notifier_range *range, 1399 unsigned long cur_seq) 1400 { 1401 struct mshv_mem_region *region = container_of(mni, 1402 struct mshv_mem_region, 1403 mni); 1404 u64 page_offset, page_count; 1405 unsigned long mstart, mend; 1406 int ret; 1407 1408 if (mmu_notifier_range_blockable(range)) 1409 mutex_lock(®ion->mutex); > 1410 else if (!mutex_trylock(®ion->mutex)) 1411 goto out_fail; 1412 1413 mmu_interval_set_seq(mni, cur_seq); 1414 1415 mstart = max(range->start, region->start_uaddr); 1416 mend = min(range->end, region->start_uaddr + 1417 (region->nr_pages << HV_HYP_PAGE_SHIFT)); 1418 1419 page_offset = HVPFN_DOWN(mstart - region->start_uaddr); 1420 page_count = HVPFN_DOWN(mend - mstart); 1421 1422 ret = mshv_region_remap_pages(region, HV_MAP_GPA_NO_ACCESS, 1423 page_offset, page_count); 1424 if (ret) 1425 goto out_fail; 1426 1427 mshv_region_invalidate_pages(region, page_offset, page_count); 1428 1429 mutex_unlock(®ion->mutex); 1430 1431 return true; 1432 1433 out_fail: 1434 WARN_ONCE(ret, 1435 "Failed to invalidate region %#llx-%#llx (range %#lx-%#lx, event: %u, pages %#llx-%#llx, mm: %#llx): %d\n", 1436 region->start_uaddr, 1437 region->start_uaddr + (region->nr_pages << HV_HYP_PAGE_SHIFT), 1438 range->start, range->end, range->event, 1439 page_offset, page_offset + page_count - 1, (u64)range->mm, ret); 1440 return false; 1441 } 1442 -- 0-DAY CI Kernel Test Service https://github.com/intel/lkp-tests/wiki
