All of lore.kernel.org
 help / color / mirror / Atom feed
From: kernel test robot <lkp@intel.com>
To: kbuild-all@lists.01.org
Subject: mm/memory.c:709:25: sparse: sparse: cast to non-scalar
Date: Sat, 01 Jan 2022 13:39:51 +0800	[thread overview]
Message-ID: <202201011331.H1OV6bX5-lkp@intel.com> (raw)

[-- Attachment #1: Type: text/plain, Size: 4504 bytes --]

tree:   https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master
head:   8008293888188c3923f5bd8a69370dae25ed14e5
commit: b756a3b5e7ead8f6f4b03cea8ac22478ce04c8a8 mm: device exclusive memory access
date:   6 months ago
config: alpha-randconfig-s031-20211122 (https://download.01.org/0day-ci/archive/20220101/202201011331.H1OV6bX5-lkp(a)intel.com/config)
compiler: alpha-linux-gcc (GCC) 11.2.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.4-dirty
        # https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=b756a3b5e7ead8f6f4b03cea8ac22478ce04c8a8
        git remote add linus https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
        git fetch --no-tags linus master
        git checkout b756a3b5e7ead8f6f4b03cea8ac22478ce04c8a8
        # save the config file to linux build tree
        mkdir build_dir
        COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-11.2.0 make.cross C=1 CF='-fdiagnostic-prefix -D__CHECK_ENDIAN__' O=build_dir ARCH=alpha SHELL=/bin/bash

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


sparse warnings: (new ones prefixed by >>)
>> mm/memory.c:709:25: sparse: sparse: cast to non-scalar
>> mm/memory.c:709:25: sparse: sparse: cast from non-scalar
   mm/memory.c:1023:17: sparse: sparse: context imbalance in 'copy_pte_range' - different lock contexts for basic block
   mm/memory.c:1736:16: sparse: sparse: context imbalance in '__get_locked_pte' - different lock contexts for basic block
   mm/memory.c:1785:9: sparse: sparse: context imbalance in 'insert_page' - different lock contexts for basic block
   mm/memory.c:2287:17: sparse: sparse: context imbalance in 'remap_pte_range' - different lock contexts for basic block
   mm/memory.c:2543:17: sparse: sparse: context imbalance in 'apply_to_pte_range' - unexpected unlock
   mm/memory.c:2831:17: sparse: sparse: context imbalance in 'wp_page_copy' - unexpected unlock
   mm/memory.c:3180:17: sparse: sparse: context imbalance in 'wp_pfn_shared' - unexpected unlock
   mm/memory.c:3243:19: sparse: sparse: context imbalance in 'do_wp_page' - different lock contexts for basic block
   mm/memory.c: note: in included file (through include/linux/mm.h, arch/alpha/include/asm/io.h, include/linux/io.h, include/linux/irq.h, ...):
   include/linux/pgtable.h:275:16: sparse: sparse: cast to non-scalar
   include/linux/pgtable.h:275:16: sparse: sparse: cast from non-scalar
   mm/memory.c:4874:5: sparse: sparse: context imbalance in 'follow_invalidate_pte' - different lock contexts for basic block
   mm/memory.c:4995:9: sparse: sparse: context imbalance in 'follow_pfn' - unexpected unlock

vim +709 mm/memory.c

   701	
   702	static void restore_exclusive_pte(struct vm_area_struct *vma,
   703					  struct page *page, unsigned long address,
   704					  pte_t *ptep)
   705	{
   706		pte_t pte;
   707		swp_entry_t entry;
   708	
 > 709		pte = pte_mkold(mk_pte(page, READ_ONCE(vma->vm_page_prot)));
   710		if (pte_swp_soft_dirty(*ptep))
   711			pte = pte_mksoft_dirty(pte);
   712	
   713		entry = pte_to_swp_entry(*ptep);
   714		if (pte_swp_uffd_wp(*ptep))
   715			pte = pte_mkuffd_wp(pte);
   716		else if (is_writable_device_exclusive_entry(entry))
   717			pte = maybe_mkwrite(pte_mkdirty(pte), vma);
   718	
   719		set_pte_at(vma->vm_mm, address, ptep, pte);
   720	
   721		/*
   722		 * No need to take a page reference as one was already
   723		 * created when the swap entry was made.
   724		 */
   725		if (PageAnon(page))
   726			page_add_anon_rmap(page, vma, address, false);
   727		else
   728			/*
   729			 * Currently device exclusive access only supports anonymous
   730			 * memory so the entry shouldn't point to a filebacked page.
   731			 */
   732			WARN_ON_ONCE(!PageAnon(page));
   733	
   734		if (vma->vm_flags & VM_LOCKED)
   735			mlock_vma_page(page);
   736	
   737		/*
   738		 * No need to invalidate - it was non-present before. However
   739		 * secondary CPUs may have mappings that need invalidating.
   740		 */
   741		update_mmu_cache(vma, address, ptep);
   742	}
   743	

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

WARNING: multiple messages have this Message-ID (diff)
From: kernel test robot <lkp@intel.com>
To: Alistair Popple <apopple@nvidia.com>
Cc: kbuild-all@lists.01.org, linux-kernel@vger.kernel.org,
	Dan Carpenter <error27@gmail.com>, Christoph Hellwig <hch@lst.de>,
	Andrew Morton <akpm@linux-foundation.org>,
	Linux Memory Management List <linux-mm@kvack.org>
Subject: mm/memory.c:709:25: sparse: sparse: cast to non-scalar
Date: Sat, 1 Jan 2022 13:39:51 +0800	[thread overview]
Message-ID: <202201011331.H1OV6bX5-lkp@intel.com> (raw)

tree:   https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master
head:   8008293888188c3923f5bd8a69370dae25ed14e5
commit: b756a3b5e7ead8f6f4b03cea8ac22478ce04c8a8 mm: device exclusive memory access
date:   6 months ago
config: alpha-randconfig-s031-20211122 (https://download.01.org/0day-ci/archive/20220101/202201011331.H1OV6bX5-lkp@intel.com/config)
compiler: alpha-linux-gcc (GCC) 11.2.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.4-dirty
        # https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=b756a3b5e7ead8f6f4b03cea8ac22478ce04c8a8
        git remote add linus https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
        git fetch --no-tags linus master
        git checkout b756a3b5e7ead8f6f4b03cea8ac22478ce04c8a8
        # save the config file to linux build tree
        mkdir build_dir
        COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-11.2.0 make.cross C=1 CF='-fdiagnostic-prefix -D__CHECK_ENDIAN__' O=build_dir ARCH=alpha SHELL=/bin/bash

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


sparse warnings: (new ones prefixed by >>)
>> mm/memory.c:709:25: sparse: sparse: cast to non-scalar
>> mm/memory.c:709:25: sparse: sparse: cast from non-scalar
   mm/memory.c:1023:17: sparse: sparse: context imbalance in 'copy_pte_range' - different lock contexts for basic block
   mm/memory.c:1736:16: sparse: sparse: context imbalance in '__get_locked_pte' - different lock contexts for basic block
   mm/memory.c:1785:9: sparse: sparse: context imbalance in 'insert_page' - different lock contexts for basic block
   mm/memory.c:2287:17: sparse: sparse: context imbalance in 'remap_pte_range' - different lock contexts for basic block
   mm/memory.c:2543:17: sparse: sparse: context imbalance in 'apply_to_pte_range' - unexpected unlock
   mm/memory.c:2831:17: sparse: sparse: context imbalance in 'wp_page_copy' - unexpected unlock
   mm/memory.c:3180:17: sparse: sparse: context imbalance in 'wp_pfn_shared' - unexpected unlock
   mm/memory.c:3243:19: sparse: sparse: context imbalance in 'do_wp_page' - different lock contexts for basic block
   mm/memory.c: note: in included file (through include/linux/mm.h, arch/alpha/include/asm/io.h, include/linux/io.h, include/linux/irq.h, ...):
   include/linux/pgtable.h:275:16: sparse: sparse: cast to non-scalar
   include/linux/pgtable.h:275:16: sparse: sparse: cast from non-scalar
   mm/memory.c:4874:5: sparse: sparse: context imbalance in 'follow_invalidate_pte' - different lock contexts for basic block
   mm/memory.c:4995:9: sparse: sparse: context imbalance in 'follow_pfn' - unexpected unlock

vim +709 mm/memory.c

   701	
   702	static void restore_exclusive_pte(struct vm_area_struct *vma,
   703					  struct page *page, unsigned long address,
   704					  pte_t *ptep)
   705	{
   706		pte_t pte;
   707		swp_entry_t entry;
   708	
 > 709		pte = pte_mkold(mk_pte(page, READ_ONCE(vma->vm_page_prot)));
   710		if (pte_swp_soft_dirty(*ptep))
   711			pte = pte_mksoft_dirty(pte);
   712	
   713		entry = pte_to_swp_entry(*ptep);
   714		if (pte_swp_uffd_wp(*ptep))
   715			pte = pte_mkuffd_wp(pte);
   716		else if (is_writable_device_exclusive_entry(entry))
   717			pte = maybe_mkwrite(pte_mkdirty(pte), vma);
   718	
   719		set_pte_at(vma->vm_mm, address, ptep, pte);
   720	
   721		/*
   722		 * No need to take a page reference as one was already
   723		 * created when the swap entry was made.
   724		 */
   725		if (PageAnon(page))
   726			page_add_anon_rmap(page, vma, address, false);
   727		else
   728			/*
   729			 * Currently device exclusive access only supports anonymous
   730			 * memory so the entry shouldn't point to a filebacked page.
   731			 */
   732			WARN_ON_ONCE(!PageAnon(page));
   733	
   734		if (vma->vm_flags & VM_LOCKED)
   735			mlock_vma_page(page);
   736	
   737		/*
   738		 * No need to invalidate - it was non-present before. However
   739		 * secondary CPUs may have mappings that need invalidating.
   740		 */
   741		update_mmu_cache(vma, address, ptep);
   742	}
   743	

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


             reply	other threads:[~2022-01-01  5:39 UTC|newest]

Thread overview: 8+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-01-01  5:39 kernel test robot [this message]
2022-01-01  5:39 ` mm/memory.c:709:25: sparse: sparse: cast to non-scalar kernel test robot
  -- strict thread matches above, loose matches on Subject: below --
2023-12-10 21:44 kernel test robot
2022-03-09  5:07 kernel test robot
2021-11-23 20:37 kernel test robot
2021-11-23 20:37 ` kernel test robot
2021-11-12 16:01 kernel test robot
2021-11-12 16:01 ` kernel test robot

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=202201011331.H1OV6bX5-lkp@intel.com \
    --to=lkp@intel.com \
    --cc=kbuild-all@lists.01.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.