Hello Stanislav Kinsburskii,
Commit b9a66cd5ccbb ("mshv: Add support for movable memory regions")
from Dec 3, 2025 (linux-next), leads to the following Smatch static
checker warning:
drivers/hv/mshv_regions.c:523 mshv_region_interval_invalidate()
warn: passing uninitialized 'page_offset'
drivers/hv/mshv_regions.c
486 static bool mshv_region_interval_invalidate(struct
mmu_interval_notifier *mni,
487 const struct
mmu_notifier_range *range,
488 unsigned long cur_seq)
489 {
490 struct mshv_mem_region *region = container_of(mni,
491 struct
mshv_mem_region,
492 mni);
493 u64 page_offset, page_count;
494 unsigned long mstart, mend;
495 int ret = -EPERM;
496
497 if (mmu_notifier_range_blockable(range))
498 mutex_lock(®ion->mutex);
499 else if (!mutex_trylock(®ion->mutex))
500 goto out_fail;
page_offset and page_count are uninitialized.
501
502 mmu_interval_set_seq(mni, cur_seq);
503
504 mstart = max(range->start, region->start_uaddr);
505 mend = min(range->end, region->start_uaddr +
506 (region->nr_pages << HV_HYP_PAGE_SHIFT));
507
508 page_offset = HVPFN_DOWN(mstart - region->start_uaddr);
509 page_count = HVPFN_DOWN(mend - mstart);
510
511 ret = mshv_region_remap_pages(region, HV_MAP_GPA_NO_ACCESS,
512 page_offset, page_count);
513 if (ret)
514 goto out_fail;
515
516 mshv_region_invalidate_pages(region, page_offset, page_count);
517
518 mutex_unlock(®ion->mutex);
519
520 return true;
521
522 out_fail:
--> 523 WARN_ONCE(ret,
524 "Failed to invalidate region %#llx-%#llx (range
%#lx-%#lx, event: %u, pages %#llx-%#llx, mm: %#llx): %d\n",
525 region->start_uaddr,
526 region->start_uaddr + (region->nr_pages <<
HV_HYP_PAGE_SHIFT),
527 range->start, range->end, range->event,
528 page_offset, page_offset + page_count - 1,
(u64)range->mm, ret);
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
529 return false;
530 }
regards,
dan carpenter