[kvm:queue 103/138] arch/x86/kvm/x86.c:9744:9: error: large integer implicitly truncated to unsigned type

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



tree:   https://git.kernel.org/pub/scm/virt/kvm/kvm.git queue
head:   7654a116f783ad0c71363bf3a4ce6e83a8fd68e5
commit: a3e967c0b87d394ea1d48d6575b3a372c5b45b54 [103/138] KVM: Terminate memslot walks via used_slots
config: i386-allyesconfig (attached as .config)
compiler: gcc-7 (Debian 7.5.0-5) 7.5.0
reproduce:
        git checkout a3e967c0b87d394ea1d48d6575b3a372c5b45b54
        # save the attached .config to linux build tree
        make ARCH=i386 

If you fix the issue, kindly add following tag
Reported-by: kbuild test robot <lkp@xxxxxxxxx>

Note: the kvm/queue HEAD 7654a116f783ad0c71363bf3a4ce6e83a8fd68e5 builds fine.
      It only hurts bisectibility.

All errors (new ones prefixed by >>):

   arch/x86/kvm/x86.c: In function '__x86_set_memory_region':
>> arch/x86/kvm/x86.c:9744:9: error: large integer implicitly truncated to unsigned type [-Werror=overflow]
      hva = 0xdeadull << 48;
            ^~~~~~~~~
   cc1: all warnings being treated as errors

vim +9744 arch/x86/kvm/x86.c

  9714	
  9715	int __x86_set_memory_region(struct kvm *kvm, int id, gpa_t gpa, u32 size)
  9716	{
  9717		int i, r;
  9718		unsigned long hva, uninitialized_var(old_npages);
  9719		struct kvm_memslots *slots = kvm_memslots(kvm);
  9720		struct kvm_memory_slot *slot;
  9721	
  9722		/* Called with kvm->slots_lock held.  */
  9723		if (WARN_ON(id >= KVM_MEM_SLOTS_NUM))
  9724			return -EINVAL;
  9725	
  9726		slot = id_to_memslot(slots, id);
  9727		if (size) {
  9728			if (slot && slot->npages)
  9729				return -EEXIST;
  9730	
  9731			/*
  9732			 * MAP_SHARED to prevent internal slot pages from being moved
  9733			 * by fork()/COW.
  9734			 */
  9735			hva = vm_mmap(NULL, 0, size, PROT_READ | PROT_WRITE,
  9736				      MAP_SHARED | MAP_ANONYMOUS, 0);
  9737			if (IS_ERR((void *)hva))
  9738				return PTR_ERR((void *)hva);
  9739		} else {
  9740			if (!slot || !slot->npages)
  9741				return 0;
  9742	
  9743			/* Stuff a non-canonical value to catch use-after-delete. */
> 9744			hva = 0xdeadull << 48;
  9745			old_npages = slot->npages;
  9746		}
  9747	
  9748		for (i = 0; i < KVM_ADDRESS_SPACE_NUM; i++) {
  9749			struct kvm_userspace_memory_region m;
  9750	
  9751			m.slot = id | (i << 16);
  9752			m.flags = 0;
  9753			m.guest_phys_addr = gpa;
  9754			m.userspace_addr = hva;
  9755			m.memory_size = size;
  9756			r = __kvm_set_memory_region(kvm, &m);
  9757			if (r < 0)
  9758				return r;
  9759		}
  9760	
  9761		if (!size)
  9762			vm_munmap(hva, old_npages * PAGE_SIZE);
  9763	
  9764		return 0;
  9765	}
  9766	EXPORT_SYMBOL_GPL(__x86_set_memory_region);
  9767	

---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@xxxxxxxxxxxx

Attachment: .config.gz
Description: application/gzip


[Index of Archives]     [KVM ARM]     [KVM ia64]     [KVM ppc]     [Virtualization Tools]     [Spice Development]     [Libvirt]     [Libvirt Users]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite Questions]     [Linux Kernel]     [Linux SCSI]     [XFree86]

  Powered by Linux