[kvms390:next 21/32] arch/s390/kvm/s390/../gmap/kvm_mmu.c:64 s390_kvm_mmu_prepare_memory_region() error: we previously assumed 'new' could be null (see line 50)
kernel test robot <[email protected]>
| Newsgroups | dev.linux.lists.oe-kbuild |
|---|---|
| Message-ID | <[email protected]> |
BCC: [email protected] CC: [email protected] CC: [email protected] TO: Steffen Eiden <[email protected]> CC: Christian Borntraeger <[email protected]> Hi Steffen, FYI, the error/warning was bisected to this commit, please ignore it if it's irrelevant. tree: https://git.kernel.org/pub/scm/linux/kernel/git/kvms390/linux.git next head: dd6f4ef6f8a37412909ad787c837332fb070159c commit: d487a24041c2ea9999ff6e8384002b874de64c94 [21/32] KVM: s390: Prepare gmap for a second KVM implementation :::::: branch date: 26 hours ago :::::: commit date: 33 hours ago config: s390-randconfig-r071-20260814 (https://download.01.org/0day-ci/archive/20260815/[email protected]/config) compiler: s390-linux-gcc (GCC) 9.5.0 smatch: v0.5.0-9187-g5189e3fb 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]> | Reported-by: Dan Carpenter <[email protected]> | Closes: https://lore.kernel.org/r/[email protected]/ smatch warnings: arch/s390/kvm/s390/../gmap/kvm_mmu.c:64 s390_kvm_mmu_prepare_memory_region() error: we previously assumed 'new' could be null (see line 50) vim +/new +64 arch/s390/kvm/s390/../gmap/kvm_mmu.c d487a24041c2ea9 Steffen Eiden 2026-04-02 44 d487a24041c2ea9 Steffen Eiden 2026-04-02 45 int s390_kvm_mmu_prepare_memory_region(struct kvm *kvm, d487a24041c2ea9 Steffen Eiden 2026-04-02 46 const struct kvm_memory_slot *old, d487a24041c2ea9 Steffen Eiden 2026-04-02 47 struct kvm_memory_slot *new, d487a24041c2ea9 Steffen Eiden 2026-04-02 48 enum kvm_mr_change change) d487a24041c2ea9 Steffen Eiden 2026-04-02 49 { d487a24041c2ea9 Steffen Eiden 2026-04-02 @50 if (kvm_is_ucontrol(kvm) && new && new->id < KVM_USER_MEM_SLOTS) d487a24041c2ea9 Steffen Eiden 2026-04-02 51 return -EINVAL; d487a24041c2ea9 Steffen Eiden 2026-04-02 52 d487a24041c2ea9 Steffen Eiden 2026-04-02 53 /* When we are protected, we should not change the memory slots */ d487a24041c2ea9 Steffen Eiden 2026-04-02 54 if (kvm_s390_pv_get_handle(kvm)) d487a24041c2ea9 Steffen Eiden 2026-04-02 55 return -EINVAL; d487a24041c2ea9 Steffen Eiden 2026-04-02 56 d487a24041c2ea9 Steffen Eiden 2026-04-02 57 if (change != KVM_MR_DELETE && change != KVM_MR_FLAGS_ONLY) { d487a24041c2ea9 Steffen Eiden 2026-04-02 58 /* d487a24041c2ea9 Steffen Eiden 2026-04-02 59 * A few sanity checks. The memory in userland is ok to be d487a24041c2ea9 Steffen Eiden 2026-04-02 60 * fragmented into various different vmas. It is okay to mmap() d487a24041c2ea9 Steffen Eiden 2026-04-02 61 * and munmap() stuff in this slot after doing this call at any d487a24041c2ea9 Steffen Eiden 2026-04-02 62 * time. d487a24041c2ea9 Steffen Eiden 2026-04-02 63 */ d487a24041c2ea9 Steffen Eiden 2026-04-02 @64 if (new->userspace_addr & ~PAGE_MASK) d487a24041c2ea9 Steffen Eiden 2026-04-02 65 return -EINVAL; d487a24041c2ea9 Steffen Eiden 2026-04-02 66 if ((new->base_gfn + new->npages) * PAGE_SIZE > kvm->arch.mem_limit) d487a24041c2ea9 Steffen Eiden 2026-04-02 67 return -EINVAL; d487a24041c2ea9 Steffen Eiden 2026-04-02 68 if (!asce_contains_gfn(kvm->arch.gmap->asce, new->base_gfn + new->npages - 1)) d487a24041c2ea9 Steffen Eiden 2026-04-02 69 return -EINVAL; d487a24041c2ea9 Steffen Eiden 2026-04-02 70 } d487a24041c2ea9 Steffen Eiden 2026-04-02 71 d487a24041c2ea9 Steffen Eiden 2026-04-02 72 if (!kvm_s390_is_migration_mode(kvm)) d487a24041c2ea9 Steffen Eiden 2026-04-02 73 return 0; d487a24041c2ea9 Steffen Eiden 2026-04-02 74 d487a24041c2ea9 Steffen Eiden 2026-04-02 75 /* d487a24041c2ea9 Steffen Eiden 2026-04-02 76 * Turn off migration mode when: d487a24041c2ea9 Steffen Eiden 2026-04-02 77 * - userspace creates a new memslot with dirty logging off, d487a24041c2ea9 Steffen Eiden 2026-04-02 78 * - userspace modifies an existing memslot (MOVE or FLAGS_ONLY) and d487a24041c2ea9 Steffen Eiden 2026-04-02 79 * dirty logging is turned off. d487a24041c2ea9 Steffen Eiden 2026-04-02 80 * Migration mode expects dirty page logging being enabled to store d487a24041c2ea9 Steffen Eiden 2026-04-02 81 * its dirty bitmap. d487a24041c2ea9 Steffen Eiden 2026-04-02 82 */ d487a24041c2ea9 Steffen Eiden 2026-04-02 83 if (change != KVM_MR_DELETE && d487a24041c2ea9 Steffen Eiden 2026-04-02 84 !(new->flags & KVM_MEM_LOG_DIRTY_PAGES)) d487a24041c2ea9 Steffen Eiden 2026-04-02 85 WARN(kvm_s390_vm_stop_migration(kvm), d487a24041c2ea9 Steffen Eiden 2026-04-02 86 "Failed to stop migration mode"); d487a24041c2ea9 Steffen Eiden 2026-04-02 87 d487a24041c2ea9 Steffen Eiden 2026-04-02 88 return 0; d487a24041c2ea9 Steffen Eiden 2026-04-02 89 } d487a24041c2ea9 Steffen Eiden 2026-04-02 90 -- 0-DAY CI Kernel Test Service https://github.com/intel/lkp-tests/wiki