tree:   https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git 
master
head:   f40ddce88593482919761f74910f42f4b84c004b
commit: dee081bf8f824cabeb7c7495367d5dad0a444eb1 READ_ONCE: Drop pointer 
qualifiers when reading from scalar types
date:   10 months ago
config: alpha-randconfig-s032-20210218 (attached as .config)
compiler: alpha-linux-gcc (GCC) 9.3.0
reproduce:
        wget 
https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O 
~/bin/make.cross
        chmod +x ~/bin/make.cross
        # apt-get install sparse
        # sparse version: v0.6.3-215-g0fb77bb6-dirty
        # 
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=dee081bf8f824cabeb7c7495367d5dad0a444eb1
        git remote add linus 
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
        git fetch --no-tags linus master
        git checkout dee081bf8f824cabeb7c7495367d5dad0a444eb1
        # save the attached .config to linux build tree
        COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-9.3.0 make.cross C=1 
CF='-fdiagnostic-prefix -D__CHECK_ENDIAN__' ARCH=alpha 

If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <l...@intel.com>


"sparse warnings: (new ones prefixed by >>)"
>> mm/hmm.c:333:15: sparse: sparse: cast to non-scalar
>> mm/hmm.c:333:15: sparse: sparse: cast from non-scalar

vim +333 mm/hmm.c

53f5c3f489ecdd Jérôme Glisse   2018-04-10  318  
53f5c3f489ecdd Jérôme Glisse   2018-04-10  319  static int 
hmm_vma_walk_pmd(pmd_t *pmdp,
53f5c3f489ecdd Jérôme Glisse   2018-04-10  320                              
unsigned long start,
53f5c3f489ecdd Jérôme Glisse   2018-04-10  321                              
unsigned long end,
53f5c3f489ecdd Jérôme Glisse   2018-04-10  322                              
struct mm_walk *walk)
53f5c3f489ecdd Jérôme Glisse   2018-04-10  323  {
53f5c3f489ecdd Jérôme Glisse   2018-04-10  324          struct hmm_vma_walk 
*hmm_vma_walk = walk->private;
53f5c3f489ecdd Jérôme Glisse   2018-04-10  325          struct hmm_range *range 
= hmm_vma_walk->range;
2288a9a68175ce Jason Gunthorpe 2020-03-05  326          uint64_t *pfns = 
&range->pfns[(start - range->start) >> PAGE_SHIFT];
2288a9a68175ce Jason Gunthorpe 2020-03-05  327          unsigned long npages = 
(end - start) >> PAGE_SHIFT;
2288a9a68175ce Jason Gunthorpe 2020-03-05  328          unsigned long addr = 
start;
53f5c3f489ecdd Jérôme Glisse   2018-04-10  329          pte_t *ptep;
d08faca018c461 Jérôme Glisse   2018-10-30  330          pmd_t pmd;
53f5c3f489ecdd Jérôme Glisse   2018-04-10  331  
53f5c3f489ecdd Jérôme Glisse   2018-04-10  332  again:
d08faca018c461 Jérôme Glisse   2018-10-30 @333          pmd = READ_ONCE(*pmdp);
d08faca018c461 Jérôme Glisse   2018-10-30  334          if (pmd_none(pmd))
b7a16c7ad790d0 Steven Price    2020-02-03  335                  return 
hmm_vma_walk_hole(start, end, -1, walk);
53f5c3f489ecdd Jérôme Glisse   2018-04-10  336  
d08faca018c461 Jérôme Glisse   2018-10-30  337          if 
(thp_migration_supported() && is_pmd_migration_entry(pmd)) {
a3eb13c1579ba9 Jason Gunthorpe 2020-03-27  338                  if 
(hmm_range_need_fault(hmm_vma_walk, pfns, npages, 0)) {
d08faca018c461 Jérôme Glisse   2018-10-30  339                          
hmm_vma_walk->last = addr;
d2e8d551165ccb Ralph Campbell  2019-07-25  340                          
pmd_migration_entry_wait(walk->mm, pmdp);
73231612dc7c90 Jérôme Glisse   2019-05-13  341                          return 
-EBUSY;
d08faca018c461 Jérôme Glisse   2018-10-30  342                  }
7d082987e5e562 Jason Gunthorpe 2020-03-04  343                  return 
hmm_pfns_fill(start, end, range, HMM_PFN_NONE);
2288a9a68175ce Jason Gunthorpe 2020-03-05  344          }
2288a9a68175ce Jason Gunthorpe 2020-03-05  345  
2288a9a68175ce Jason Gunthorpe 2020-03-05  346          if (!pmd_present(pmd)) {
a3eb13c1579ba9 Jason Gunthorpe 2020-03-27  347                  if 
(hmm_range_need_fault(hmm_vma_walk, pfns, npages, 0))
2288a9a68175ce Jason Gunthorpe 2020-03-05  348                          return 
-EFAULT;
d28c2c9a487708 Ralph Campbell  2019-11-04  349                  return 
hmm_pfns_fill(start, end, range, HMM_PFN_ERROR);
2288a9a68175ce Jason Gunthorpe 2020-03-05  350          }
d08faca018c461 Jérôme Glisse   2018-10-30  351  
d08faca018c461 Jérôme Glisse   2018-10-30  352          if (pmd_devmap(pmd) || 
pmd_trans_huge(pmd)) {
53f5c3f489ecdd Jérôme Glisse   2018-04-10  353                  /*
d2e8d551165ccb Ralph Campbell  2019-07-25  354                   * No need to 
take pmd_lock here, even if some other thread
53f5c3f489ecdd Jérôme Glisse   2018-04-10  355                   * is splitting 
the huge pmd we will get that event through
53f5c3f489ecdd Jérôme Glisse   2018-04-10  356                   * mmu_notifier 
callback.
53f5c3f489ecdd Jérôme Glisse   2018-04-10  357                   *
d2e8d551165ccb Ralph Campbell  2019-07-25  358                   * So just read 
pmd value and check again it's a transparent
53f5c3f489ecdd Jérôme Glisse   2018-04-10  359                   * huge or 
device mapping one and compute corresponding pfn
53f5c3f489ecdd Jérôme Glisse   2018-04-10  360                   * values.
53f5c3f489ecdd Jérôme Glisse   2018-04-10  361                   */
53f5c3f489ecdd Jérôme Glisse   2018-04-10  362                  pmd = 
pmd_read_atomic(pmdp);
53f5c3f489ecdd Jérôme Glisse   2018-04-10  363                  barrier();
53f5c3f489ecdd Jérôme Glisse   2018-04-10  364                  if 
(!pmd_devmap(pmd) && !pmd_trans_huge(pmd))
53f5c3f489ecdd Jérôme Glisse   2018-04-10  365                          goto 
again;
53f5c3f489ecdd Jérôme Glisse   2018-04-10  366  
2288a9a68175ce Jason Gunthorpe 2020-03-05  367                  return 
hmm_vma_handle_pmd(walk, addr, end, pfns, pmd);
53f5c3f489ecdd Jérôme Glisse   2018-04-10  368          }
53f5c3f489ecdd Jérôme Glisse   2018-04-10  369  
d08faca018c461 Jérôme Glisse   2018-10-30  370          /*
d2e8d551165ccb Ralph Campbell  2019-07-25  371           * We have handled all 
the valid cases above ie either none, migration,
d08faca018c461 Jérôme Glisse   2018-10-30  372           * huge or transparent 
huge. At this point either it is a valid pmd
d08faca018c461 Jérôme Glisse   2018-10-30  373           * entry pointing to 
pte directory or it is a bad pmd that will not
d08faca018c461 Jérôme Glisse   2018-10-30  374           * recover.
d08faca018c461 Jérôme Glisse   2018-10-30  375           */
2288a9a68175ce Jason Gunthorpe 2020-03-05  376          if (pmd_bad(pmd)) {
a3eb13c1579ba9 Jason Gunthorpe 2020-03-27  377                  if 
(hmm_range_need_fault(hmm_vma_walk, pfns, npages, 0))
2288a9a68175ce Jason Gunthorpe 2020-03-05  378                          return 
-EFAULT;
d28c2c9a487708 Ralph Campbell  2019-11-04  379                  return 
hmm_pfns_fill(start, end, range, HMM_PFN_ERROR);
2288a9a68175ce Jason Gunthorpe 2020-03-05  380          }
53f5c3f489ecdd Jérôme Glisse   2018-04-10  381  
53f5c3f489ecdd Jérôme Glisse   2018-04-10  382          ptep = 
pte_offset_map(pmdp, addr);
2288a9a68175ce Jason Gunthorpe 2020-03-05  383          for (; addr < end; addr 
+= PAGE_SIZE, ptep++, pfns++) {
53f5c3f489ecdd Jérôme Glisse   2018-04-10  384                  int r;
53f5c3f489ecdd Jérôme Glisse   2018-04-10  385  
2288a9a68175ce Jason Gunthorpe 2020-03-05  386                  r = 
hmm_vma_handle_pte(walk, addr, end, pmdp, ptep, pfns);
53f5c3f489ecdd Jérôme Glisse   2018-04-10  387                  if (r) {
dfdc22078f3f06 Jason Gunthorpe 2020-02-28  388                          /* 
hmm_vma_handle_pte() did pte_unmap() */
53f5c3f489ecdd Jérôme Glisse   2018-04-10  389                          
hmm_vma_walk->last = addr;
53f5c3f489ecdd Jérôme Glisse   2018-04-10  390                          return 
r;
53f5c3f489ecdd Jérôme Glisse   2018-04-10  391                  }
da4c3c735ea4dc Jérôme Glisse   2017-09-08  392          }
da4c3c735ea4dc Jérôme Glisse   2017-09-08  393          pte_unmap(ptep - 1);
da4c3c735ea4dc Jérôme Glisse   2017-09-08  394  
53f5c3f489ecdd Jérôme Glisse   2018-04-10  395          hmm_vma_walk->last = 
addr;
da4c3c735ea4dc Jérôme Glisse   2017-09-08  396          return 0;
da4c3c735ea4dc Jérôme Glisse   2017-09-08  397  }
da4c3c735ea4dc Jérôme Glisse   2017-09-08  398  

:::::: The code at line 333 was first introduced by commit
:::::: d08faca018c4618068e54dfef4f1d71230feff38 mm/hmm: properly handle 
migration pmd

:::::: TO: Jérôme Glisse <jgli...@redhat.com>
:::::: CC: Linus Torvalds <torva...@linux-foundation.org>

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

Attachment: .config.gz
Description: application/gzip

Reply via email to