[<prev] [next>] [day] [month] [year] [list]
Message-ID: <202411172120.xEl8Vl4S-lkp@intel.com>
Date: Sun, 17 Nov 2024 22:05:25 +0800
From: kernel test robot <lkp@...el.com>
To: Paolo Bonzini <pbonzini@...hat.com>
Cc: oe-kbuild-all@...ts.linux.dev, linux-kernel@...r.kernel.org
Subject: arch/x86/kvm/../../../virt/kvm/guest_memfd.c:540:18: sparse: sparse:
incompatible types in comparison expression (different address spaces):
tree: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master
head: 4a5df37964673effcd9f84041f7423206a5ae5f2
commit: 17573fd971f9e31ddee420eca8359ceff87e9e51 KVM: guest_memfd: extract __kvm_gmem_get_pfn()
date: 6 months ago
config: x86_64-randconfig-122-20241116 (https://download.01.org/0day-ci/archive/20241117/202411172120.xEl8Vl4S-lkp@intel.com/config)
compiler: clang version 19.1.3 (https://github.com/llvm/llvm-project ab51eccf88f5321e7c60591c5546b254b6afab99)
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20241117/202411172120.xEl8Vl4S-lkp@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 <lkp@...el.com>
| Closes: https://lore.kernel.org/oe-kbuild-all/202411172120.xEl8Vl4S-lkp@intel.com/
sparse warnings: (new ones prefixed by >>)
>> arch/x86/kvm/../../../virt/kvm/guest_memfd.c:540:18: sparse: sparse: incompatible types in comparison expression (different address spaces):
arch/x86/kvm/../../../virt/kvm/guest_memfd.c:540:18: sparse: struct file *
arch/x86/kvm/../../../virt/kvm/guest_memfd.c:540:18: sparse: struct file [noderef] __rcu *
arch/x86/kvm/../../../virt/kvm/guest_memfd.c:121:17: sparse: sparse: context imbalance in 'kvm_gmem_invalidate_begin' - different lock contexts for basic block
arch/x86/kvm/../../../virt/kvm/guest_memfd.c: note: in included file (through include/linux/wait.h, include/linux/wait_bit.h, include/linux/fs.h, ...):
include/linux/list.h:83:21: sparse: sparse: self-comparison always evaluates to true
arch/x86/kvm/../../../virt/kvm/guest_memfd.c:293:33: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected struct file **f @@ got struct file [noderef] __rcu ** @@
arch/x86/kvm/../../../virt/kvm/guest_memfd.c:293:33: sparse: expected struct file **f
arch/x86/kvm/../../../virt/kvm/guest_memfd.c:293:33: sparse: got struct file [noderef] __rcu **
arch/x86/kvm/../../../virt/kvm/guest_memfd.c:293:33: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected struct file **f @@ got struct file [noderef] __rcu ** @@
arch/x86/kvm/../../../virt/kvm/guest_memfd.c:293:33: sparse: expected struct file **f
arch/x86/kvm/../../../virt/kvm/guest_memfd.c:293:33: sparse: got struct file [noderef] __rcu **
vim +540 arch/x86/kvm/../../../virt/kvm/guest_memfd.c
530
531 static int __kvm_gmem_get_pfn(struct file *file, struct kvm_memory_slot *slot,
532 gfn_t gfn, kvm_pfn_t *pfn, int *max_order, bool prepare)
533 {
534 pgoff_t index = gfn - slot->base_gfn + slot->gmem.pgoff;
535 struct kvm_gmem *gmem = file->private_data;
536 struct folio *folio;
537 struct page *page;
538 int r;
539
> 540 if (file != slot->gmem.file) {
541 WARN_ON_ONCE(slot->gmem.file);
542 return -EFAULT;
543 }
544
545 gmem = file->private_data;
546 if (xa_load(&gmem->bindings, index) != slot) {
547 WARN_ON_ONCE(xa_load(&gmem->bindings, index));
548 return -EIO;
549 }
550
551 folio = kvm_gmem_get_folio(file_inode(file), index, prepare);
552 if (IS_ERR(folio))
553 return PTR_ERR(folio);
554
555 if (folio_test_hwpoison(folio)) {
556 r = -EHWPOISON;
557 goto out_unlock;
558 }
559
560 page = folio_file_page(folio, index);
561
562 *pfn = page_to_pfn(page);
563 if (max_order)
564 *max_order = 0;
565
566 r = 0;
567
568 out_unlock:
569 folio_unlock(folio);
570
571 return r;
572 }
573
--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki
Powered by blists - more mailing lists