tree:   https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git 
master
head:   1048ba83fb1c00cd24172e23e8263972f6b5d9ac
commit: dee081bf8f824cabeb7c7495367d5dad0a444eb1 READ_ONCE: Drop pointer 
qualifiers when reading from scalar types
date:   10 months ago
config: alpha-randconfig-s031-20210201 (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/gup.c:559:18: sparse: sparse: cast to non-scalar
>> mm/gup.c:559:18: sparse: sparse: cast from non-scalar
   mm/gup.c:584:26: sparse: sparse: cast to non-scalar
   mm/gup.c:584:26: sparse: sparse: cast from non-scalar
--
>> mm/page_vma_mapped.c:186:16: sparse: sparse: cast to non-scalar
>> mm/page_vma_mapped.c:186:16: sparse: sparse: cast from non-scalar
   mm/page_vma_mapped.c:16:13: sparse: sparse: context imbalance in 'map_pte' - 
wrong count at exit
   mm/page_vma_mapped.c: note: in included file:
   include/linux/rmap.h:220:28: sparse: sparse: context imbalance in 
'page_vma_mapped_walk' - unexpected unlock
   include/linux/rmap.h:220:28: sparse: sparse: context imbalance in 
'page_mapped_in_vma' - unexpected unlock
--
>> mm/migrate.c:236:33: sparse: sparse: cast to non-scalar
>> mm/migrate.c:236:33: sparse: sparse: cast from non-scalar
   mm/migrate.c:824:9: sparse: sparse: context imbalance in 
'__buffer_migrate_page' - different lock contexts for basic block

vim +559 mm/gup.c

69e68b4f03135d Kirill A. Shutemov 2014-06-04  543  
080dbb618b4bc2 Aneesh Kumar K.V   2017-07-06  544  static struct page 
*follow_pmd_mask(struct vm_area_struct *vma,
080dbb618b4bc2 Aneesh Kumar K.V   2017-07-06  545                               
    unsigned long address, pud_t *pudp,
df06b37ffe5a44 Keith Busch        2018-10-26  546                               
    unsigned int flags,
df06b37ffe5a44 Keith Busch        2018-10-26  547                               
    struct follow_page_context *ctx)
69e68b4f03135d Kirill A. Shutemov 2014-06-04  548  {
688272809fcce5 Huang Ying         2018-06-07  549       pmd_t *pmd, pmdval;
69e68b4f03135d Kirill A. Shutemov 2014-06-04  550       spinlock_t *ptl;
69e68b4f03135d Kirill A. Shutemov 2014-06-04  551       struct page *page;
69e68b4f03135d Kirill A. Shutemov 2014-06-04  552       struct mm_struct *mm = 
vma->vm_mm;
69e68b4f03135d Kirill A. Shutemov 2014-06-04  553  
080dbb618b4bc2 Aneesh Kumar K.V   2017-07-06  554       pmd = pmd_offset(pudp, 
address);
688272809fcce5 Huang Ying         2018-06-07  555       /*
688272809fcce5 Huang Ying         2018-06-07  556        * The READ_ONCE() will 
stabilize the pmdval in a register or
688272809fcce5 Huang Ying         2018-06-07  557        * on the stack so that 
it will stop changing under the code.
688272809fcce5 Huang Ying         2018-06-07  558        */
688272809fcce5 Huang Ying         2018-06-07 @559       pmdval = 
READ_ONCE(*pmd);
688272809fcce5 Huang Ying         2018-06-07  560       if (pmd_none(pmdval))
69e68b4f03135d Kirill A. Shutemov 2014-06-04  561               return 
no_page_table(vma, flags);
be9d30458913f7 Wei Yang           2020-01-30  562       if (pmd_huge(pmdval) && 
is_vm_hugetlb_page(vma)) {
e66f17ff71772b Naoya Horiguchi    2015-02-11  563               page = 
follow_huge_pmd(mm, address, pmd, flags);
e66f17ff71772b Naoya Horiguchi    2015-02-11  564               if (page)
4bbd4c776a63a0 Kirill A. Shutemov 2014-06-04  565                       return 
page;
e66f17ff71772b Naoya Horiguchi    2015-02-11  566               return 
no_page_table(vma, flags);
4bbd4c776a63a0 Kirill A. Shutemov 2014-06-04  567       }
688272809fcce5 Huang Ying         2018-06-07  568       if 
(is_hugepd(__hugepd(pmd_val(pmdval)))) {
4dc71451a2078e Aneesh Kumar K.V   2017-07-06  569               page = 
follow_huge_pd(vma, address,
688272809fcce5 Huang Ying         2018-06-07  570                               
      __hugepd(pmd_val(pmdval)), flags,
4dc71451a2078e Aneesh Kumar K.V   2017-07-06  571                               
      PMD_SHIFT);
4dc71451a2078e Aneesh Kumar K.V   2017-07-06  572               if (page)
4dc71451a2078e Aneesh Kumar K.V   2017-07-06  573                       return 
page;
4dc71451a2078e Aneesh Kumar K.V   2017-07-06  574               return 
no_page_table(vma, flags);
4dc71451a2078e Aneesh Kumar K.V   2017-07-06  575       }
84c3fc4e9c563d Zi Yan             2017-09-08  576  retry:
688272809fcce5 Huang Ying         2018-06-07  577       if 
(!pmd_present(pmdval)) {
84c3fc4e9c563d Zi Yan             2017-09-08  578               if 
(likely(!(flags & FOLL_MIGRATION)))
84c3fc4e9c563d Zi Yan             2017-09-08  579                       return 
no_page_table(vma, flags);
84c3fc4e9c563d Zi Yan             2017-09-08  580               
VM_BUG_ON(thp_migration_supported() &&
688272809fcce5 Huang Ying         2018-06-07  581                               
  !is_pmd_migration_entry(pmdval));
688272809fcce5 Huang Ying         2018-06-07  582               if 
(is_pmd_migration_entry(pmdval))
84c3fc4e9c563d Zi Yan             2017-09-08  583                       
pmd_migration_entry_wait(mm, pmd);
688272809fcce5 Huang Ying         2018-06-07  584               pmdval = 
READ_ONCE(*pmd);
688272809fcce5 Huang Ying         2018-06-07  585               /*
688272809fcce5 Huang Ying         2018-06-07  586                * 
MADV_DONTNEED may convert the pmd to null because
688272809fcce5 Huang Ying         2018-06-07  587                * mmap_sem is 
held in read mode
688272809fcce5 Huang Ying         2018-06-07  588                */
688272809fcce5 Huang Ying         2018-06-07  589               if 
(pmd_none(pmdval))
688272809fcce5 Huang Ying         2018-06-07  590                       return 
no_page_table(vma, flags);
84c3fc4e9c563d Zi Yan             2017-09-08  591               goto retry;
84c3fc4e9c563d Zi Yan             2017-09-08  592       }
688272809fcce5 Huang Ying         2018-06-07  593       if (pmd_devmap(pmdval)) 
{
3565fce3a6597e Dan Williams       2016-01-15  594               ptl = 
pmd_lock(mm, pmd);
df06b37ffe5a44 Keith Busch        2018-10-26  595               page = 
follow_devmap_pmd(vma, address, pmd, flags, &ctx->pgmap);
3565fce3a6597e Dan Williams       2016-01-15  596               
spin_unlock(ptl);
3565fce3a6597e Dan Williams       2016-01-15  597               if (page)
3565fce3a6597e Dan Williams       2016-01-15  598                       return 
page;
3565fce3a6597e Dan Williams       2016-01-15  599       }
688272809fcce5 Huang Ying         2018-06-07  600       if 
(likely(!pmd_trans_huge(pmdval)))
df06b37ffe5a44 Keith Busch        2018-10-26  601               return 
follow_page_pte(vma, address, pmd, flags, &ctx->pgmap);
6742d293cbe01d Kirill A. Shutemov 2016-01-15  602  
688272809fcce5 Huang Ying         2018-06-07  603       if ((flags & FOLL_NUMA) 
&& pmd_protnone(pmdval))
db08f2030a173f Aneesh Kumar K.V   2017-02-24  604               return 
no_page_table(vma, flags);
db08f2030a173f Aneesh Kumar K.V   2017-02-24  605  
84c3fc4e9c563d Zi Yan             2017-09-08  606  retry_locked:
69e68b4f03135d Kirill A. Shutemov 2014-06-04  607       ptl = pmd_lock(mm, pmd);
688272809fcce5 Huang Ying         2018-06-07  608       if 
(unlikely(pmd_none(*pmd))) {
688272809fcce5 Huang Ying         2018-06-07  609               
spin_unlock(ptl);
688272809fcce5 Huang Ying         2018-06-07  610               return 
no_page_table(vma, flags);
688272809fcce5 Huang Ying         2018-06-07  611       }
84c3fc4e9c563d Zi Yan             2017-09-08  612       if 
(unlikely(!pmd_present(*pmd))) {
84c3fc4e9c563d Zi Yan             2017-09-08  613               
spin_unlock(ptl);
84c3fc4e9c563d Zi Yan             2017-09-08  614               if 
(likely(!(flags & FOLL_MIGRATION)))
84c3fc4e9c563d Zi Yan             2017-09-08  615                       return 
no_page_table(vma, flags);
84c3fc4e9c563d Zi Yan             2017-09-08  616               
pmd_migration_entry_wait(mm, pmd);
84c3fc4e9c563d Zi Yan             2017-09-08  617               goto 
retry_locked;
84c3fc4e9c563d Zi Yan             2017-09-08  618       }
6742d293cbe01d Kirill A. Shutemov 2016-01-15  619       if 
(unlikely(!pmd_trans_huge(*pmd))) {
6742d293cbe01d Kirill A. Shutemov 2016-01-15  620               
spin_unlock(ptl);
df06b37ffe5a44 Keith Busch        2018-10-26  621               return 
follow_page_pte(vma, address, pmd, flags, &ctx->pgmap);
6742d293cbe01d Kirill A. Shutemov 2016-01-15  622       }
bfe7b00de6d1e2 Song Liu           2019-09-23  623       if (flags & (FOLL_SPLIT 
| FOLL_SPLIT_PMD)) {
6742d293cbe01d Kirill A. Shutemov 2016-01-15  624               int ret;
6742d293cbe01d Kirill A. Shutemov 2016-01-15  625               page = 
pmd_page(*pmd);
6742d293cbe01d Kirill A. Shutemov 2016-01-15  626               if 
(is_huge_zero_page(page)) {
6742d293cbe01d Kirill A. Shutemov 2016-01-15  627                       
spin_unlock(ptl);
6742d293cbe01d Kirill A. Shutemov 2016-01-15  628                       ret = 0;
78ddc534734190 Kirill A. Shutemov 2016-01-15  629                       
split_huge_pmd(vma, pmd, address);
337d9abf1cd1a5 Naoya Horiguchi    2016-07-26  630                       if 
(pmd_trans_unstable(pmd))
337d9abf1cd1a5 Naoya Horiguchi    2016-07-26  631                               
ret = -EBUSY;
bfe7b00de6d1e2 Song Liu           2019-09-23  632               } else if 
(flags & FOLL_SPLIT) {
8fde12ca79aff9 Linus Torvalds     2019-04-11  633                       if 
(unlikely(!try_get_page(page))) {
8fde12ca79aff9 Linus Torvalds     2019-04-11  634                               
spin_unlock(ptl);
8fde12ca79aff9 Linus Torvalds     2019-04-11  635                               
return ERR_PTR(-ENOMEM);
8fde12ca79aff9 Linus Torvalds     2019-04-11  636                       }
69e68b4f03135d Kirill A. Shutemov 2014-06-04  637                       
spin_unlock(ptl);
6742d293cbe01d Kirill A. Shutemov 2016-01-15  638                       
lock_page(page);
6742d293cbe01d Kirill A. Shutemov 2016-01-15  639                       ret = 
split_huge_page(page);
6742d293cbe01d Kirill A. Shutemov 2016-01-15  640                       
unlock_page(page);
6742d293cbe01d Kirill A. Shutemov 2016-01-15  641                       
put_page(page);
baa355fd331424 Kirill A. Shutemov 2016-07-26  642                       if 
(pmd_none(*pmd))
baa355fd331424 Kirill A. Shutemov 2016-07-26  643                               
return no_page_table(vma, flags);
bfe7b00de6d1e2 Song Liu           2019-09-23  644               } else {  /* 
flags & FOLL_SPLIT_PMD */
bfe7b00de6d1e2 Song Liu           2019-09-23  645                       
spin_unlock(ptl);
bfe7b00de6d1e2 Song Liu           2019-09-23  646                       
split_huge_pmd(vma, pmd, address);
bfe7b00de6d1e2 Song Liu           2019-09-23  647                       ret = 
pte_alloc(mm, pmd) ? -ENOMEM : 0;
69e68b4f03135d Kirill A. Shutemov 2014-06-04  648               }
6742d293cbe01d Kirill A. Shutemov 2016-01-15  649  
6742d293cbe01d Kirill A. Shutemov 2016-01-15  650               return ret ? 
ERR_PTR(ret) :
df06b37ffe5a44 Keith Busch        2018-10-26  651                       
follow_page_pte(vma, address, pmd, flags, &ctx->pgmap);
69e68b4f03135d Kirill A. Shutemov 2014-06-04  652       }
6742d293cbe01d Kirill A. Shutemov 2016-01-15  653       page = 
follow_trans_huge_pmd(vma, address, pmd, flags);
6742d293cbe01d Kirill A. Shutemov 2016-01-15  654       spin_unlock(ptl);
df06b37ffe5a44 Keith Busch        2018-10-26  655       ctx->page_mask = 
HPAGE_PMD_NR - 1;
6742d293cbe01d Kirill A. Shutemov 2016-01-15  656       return page;
69e68b4f03135d Kirill A. Shutemov 2014-06-04  657  }
4bbd4c776a63a0 Kirill A. Shutemov 2014-06-04  658  

:::::: The code at line 559 was first introduced by commit
:::::: 688272809fcce5b17fcefd5892b59f3788efb144 mm, gup: prevent pmd checking 
race in follow_pmd_mask()

:::::: TO: Huang Ying <ying.hu...@intel.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