CC: [email protected]
In-Reply-To: <[email protected]>
References: <[email protected]>
TO: Paolo Bonzini <[email protected]>
TO: [email protected]
TO: [email protected]
CC: [email protected]
CC: [email protected]
CC: Andrew Morton <[email protected]>
CC: Linux Memory Management List <[email protected]>
CC: [email protected]

Hi Paolo,

I love your patch! Perhaps something to improve:

[auto build test WARNING on linux/master]
[also build test WARNING on linus/master v5.11-rc6]
[cannot apply to kvm/linux-next hnaz-linux-mm/master]
[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]

url:    
https://github.com/0day-ci/linux/commits/Paolo-Bonzini/KVM-do-not-assume-PTE-is-writable-after-follow_pfn/20210205-183434
base:   https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git 
2ab38c17aac10bf55ab3efde4c4db3893d8691d2
:::::: branch date: 5 hours ago
:::::: commit date: 5 hours ago
config: i386-randconfig-s001-20210205 (attached as .config)
compiler: gcc-9 (Debian 9.3.0-15) 9.3.0
reproduce:
        # apt-get install sparse
        # sparse version: v0.6.3-215-g0fb77bb6-dirty
        # 
https://github.com/0day-ci/linux/commit/ad5c7f2ccaf2872e1f56278a9e1a0c839c5cf518
        git remote add linux-review https://github.com/0day-ci/linux
        git fetch --no-tags linux-review 
Paolo-Bonzini/KVM-do-not-assume-PTE-is-writable-after-follow_pfn/20210205-183434
        git checkout ad5c7f2ccaf2872e1f56278a9e1a0c839c5cf518
        # save the attached .config to linux build tree
        make W=1 C=1 CF='-fdiagnostic-prefix -D__CHECK_ENDIAN__' ARCH=i386 

If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <[email protected]>


"sparse warnings: (new ones prefixed by >>)"
   mm/memory.c:5197:22: sparse: sparse: cast removes address space '__user' of 
expression
   mm/memory.c:943:17: sparse: sparse: context imbalance in 'copy_pte_range' - 
different lock contexts for basic block
   mm/memory.c:1623:16: sparse: sparse: context imbalance in '__get_locked_pte' 
- different lock contexts for basic block
   mm/memory.c:1672:9: sparse: sparse: context imbalance in 'insert_page' - 
different lock contexts for basic block
   mm/memory.c:2174:17: sparse: sparse: context imbalance in 'remap_pte_range' 
- different lock contexts for basic block
   mm/memory.c:2419:17: sparse: sparse: context imbalance in 
'apply_to_pte_range' - unexpected unlock
   mm/memory.c:2676:9: sparse: sparse: context imbalance in 'wp_page_copy' - 
different lock contexts for basic block
   mm/memory.c:3022:17: sparse: sparse: context imbalance in 'wp_pfn_shared' - 
unexpected unlock
   mm/memory.c:3085:19: sparse: sparse: context imbalance in 'do_wp_page' - 
different lock contexts for basic block
   mm/memory.c:3657:19: sparse: sparse: context imbalance in 
'pte_alloc_one_map' - different lock contexts for basic block
   mm/memory.c:3884:17: sparse: sparse: context imbalance in 'finish_fault' - 
unexpected unlock
   mm/memory.c:3993:9: sparse: sparse: context imbalance in 'do_fault_around' - 
unexpected unlock
>> mm/memory.c:4712:5: sparse: sparse: context imbalance in 
>> 'follow_invalidate_pte' - wrong count at exit
   mm/memory.c:4827:23: sparse: sparse: context imbalance in 'follow_pfn' - 
unexpected unlock
   mm/memory.c:4857:9: sparse: sparse: context imbalance in 'follow_phys' - 
unexpected unlock

vim +/follow_invalidate_pte +4712 mm/memory.c

^1da177e4c3f41 Linus Torvalds     2005-04-16  4711  
ad5c7f2ccaf287 Paolo Bonzini      2021-02-05 @4712  int 
follow_invalidate_pte(struct mm_struct *mm, unsigned long address,
ad5c7f2ccaf287 Paolo Bonzini      2021-02-05  4713                        
struct mmu_notifier_range *range, pte_t **ptepp,
ad5c7f2ccaf287 Paolo Bonzini      2021-02-05  4714                        pmd_t 
**pmdpp, spinlock_t **ptlp)
f8ad0f499fad5c Johannes Weiner    2009-06-16  4715  {
f8ad0f499fad5c Johannes Weiner    2009-06-16  4716      pgd_t *pgd;
c2febafc67734a Kirill A. Shutemov 2017-03-09  4717      p4d_t *p4d;
f8ad0f499fad5c Johannes Weiner    2009-06-16  4718      pud_t *pud;
f8ad0f499fad5c Johannes Weiner    2009-06-16  4719      pmd_t *pmd;
f8ad0f499fad5c Johannes Weiner    2009-06-16  4720      pte_t *ptep;
f8ad0f499fad5c Johannes Weiner    2009-06-16  4721  
f8ad0f499fad5c Johannes Weiner    2009-06-16  4722      pgd = pgd_offset(mm, 
address);
f8ad0f499fad5c Johannes Weiner    2009-06-16  4723      if (pgd_none(*pgd) || 
unlikely(pgd_bad(*pgd)))
f8ad0f499fad5c Johannes Weiner    2009-06-16  4724              goto out;
f8ad0f499fad5c Johannes Weiner    2009-06-16  4725  
c2febafc67734a Kirill A. Shutemov 2017-03-09  4726      p4d = p4d_offset(pgd, 
address);
c2febafc67734a Kirill A. Shutemov 2017-03-09  4727      if (p4d_none(*p4d) || 
unlikely(p4d_bad(*p4d)))
c2febafc67734a Kirill A. Shutemov 2017-03-09  4728              goto out;
c2febafc67734a Kirill A. Shutemov 2017-03-09  4729  
c2febafc67734a Kirill A. Shutemov 2017-03-09  4730      pud = pud_offset(p4d, 
address);
f8ad0f499fad5c Johannes Weiner    2009-06-16  4731      if (pud_none(*pud) || 
unlikely(pud_bad(*pud)))
f8ad0f499fad5c Johannes Weiner    2009-06-16  4732              goto out;
f8ad0f499fad5c Johannes Weiner    2009-06-16  4733  
f8ad0f499fad5c Johannes Weiner    2009-06-16  4734      pmd = pmd_offset(pud, 
address);
f66055ab6fb973 Andrea Arcangeli   2011-01-13  4735      
VM_BUG_ON(pmd_trans_huge(*pmd));
097963959594c5 Ross Zwisler       2017-01-10  4736  
097963959594c5 Ross Zwisler       2017-01-10  4737      if (pmd_huge(*pmd)) {
097963959594c5 Ross Zwisler       2017-01-10  4738              if (!pmdpp)
f8ad0f499fad5c Johannes Weiner    2009-06-16  4739                      goto 
out;
f8ad0f499fad5c Johannes Weiner    2009-06-16  4740  
ac46d4f3c43241 Jérôme Glisse      2018-12-28  4741              if (range) {
7269f999934b28 Jérôme Glisse      2019-05-13  4742                      
mmu_notifier_range_init(range, MMU_NOTIFY_CLEAR, 0,
6f4f13e8d9e27c Jérôme Glisse      2019-05-13  4743                              
                NULL, mm, address & PMD_MASK,
ac46d4f3c43241 Jérôme Glisse      2018-12-28  4744                              
                (address & PMD_MASK) + PMD_SIZE);
ac46d4f3c43241 Jérôme Glisse      2018-12-28  4745                      
mmu_notifier_invalidate_range_start(range);
a4d1a885251382 Jérôme Glisse      2017-08-31  4746              }
097963959594c5 Ross Zwisler       2017-01-10  4747              *ptlp = 
pmd_lock(mm, pmd);
097963959594c5 Ross Zwisler       2017-01-10  4748              if 
(pmd_huge(*pmd)) {
097963959594c5 Ross Zwisler       2017-01-10  4749                      *pmdpp 
= pmd;
097963959594c5 Ross Zwisler       2017-01-10  4750                      return 
0;
097963959594c5 Ross Zwisler       2017-01-10  4751              }
097963959594c5 Ross Zwisler       2017-01-10  4752              
spin_unlock(*ptlp);
ac46d4f3c43241 Jérôme Glisse      2018-12-28  4753              if (range)
ac46d4f3c43241 Jérôme Glisse      2018-12-28  4754                      
mmu_notifier_invalidate_range_end(range);
097963959594c5 Ross Zwisler       2017-01-10  4755      }
097963959594c5 Ross Zwisler       2017-01-10  4756  
097963959594c5 Ross Zwisler       2017-01-10  4757      if (pmd_none(*pmd) || 
unlikely(pmd_bad(*pmd)))
f8ad0f499fad5c Johannes Weiner    2009-06-16  4758              goto out;
f8ad0f499fad5c Johannes Weiner    2009-06-16  4759  
ac46d4f3c43241 Jérôme Glisse      2018-12-28  4760      if (range) {
7269f999934b28 Jérôme Glisse      2019-05-13  4761              
mmu_notifier_range_init(range, MMU_NOTIFY_CLEAR, 0, NULL, mm,
6f4f13e8d9e27c Jérôme Glisse      2019-05-13  4762                              
        address & PAGE_MASK,
1ed7293ac40c5b Matthew Wilcox     2019-01-08  4763                              
        (address & PAGE_MASK) + PAGE_SIZE);
ac46d4f3c43241 Jérôme Glisse      2018-12-28  4764              
mmu_notifier_invalidate_range_start(range);
a4d1a885251382 Jérôme Glisse      2017-08-31  4765      }
f8ad0f499fad5c Johannes Weiner    2009-06-16  4766      ptep = 
pte_offset_map_lock(mm, pmd, address, ptlp);
f8ad0f499fad5c Johannes Weiner    2009-06-16  4767      if (!pte_present(*ptep))
f8ad0f499fad5c Johannes Weiner    2009-06-16  4768              goto unlock;
f8ad0f499fad5c Johannes Weiner    2009-06-16  4769      *ptepp = ptep;
f8ad0f499fad5c Johannes Weiner    2009-06-16  4770      return 0;
f8ad0f499fad5c Johannes Weiner    2009-06-16  4771  unlock:
f8ad0f499fad5c Johannes Weiner    2009-06-16  4772      pte_unmap_unlock(ptep, 
*ptlp);
ac46d4f3c43241 Jérôme Glisse      2018-12-28  4773      if (range)
ac46d4f3c43241 Jérôme Glisse      2018-12-28  4774              
mmu_notifier_invalidate_range_end(range);
f8ad0f499fad5c Johannes Weiner    2009-06-16  4775  out:
f8ad0f499fad5c Johannes Weiner    2009-06-16  4776      return -EINVAL;
f8ad0f499fad5c Johannes Weiner    2009-06-16  4777  }
f8ad0f499fad5c Johannes Weiner    2009-06-16  4778  

---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/[email protected]

Attachment: .config.gz
Description: application/gzip

_______________________________________________
kbuild mailing list -- [email protected]
To unsubscribe send an email to [email protected]

Reply via email to