All of lore.kernel.org
 help / color / mirror / Atom feed
From: kernel test robot <lkp@intel.com>
To: David Hildenbrand <david@redhat.com>
Cc: oe-kbuild-all@lists.linux.dev
Subject: [davidhildenbrand:device_private 12/12] mm/migrate.c:294:33: error: implicit declaration of function 'make_device_private_entry'; did you mean 'is_device_private_entry'?
Date: Sat, 25 Jan 2025 16:01:16 +0800	[thread overview]
Message-ID: <202501251551.At4FVF82-lkp@intel.com> (raw)

tree:   https://github.com/davidhildenbrand/linux device_private
head:   1693aa537b530ade1b82a54169a772386b4b7af7
commit: 1693aa537b530ade1b82a54169a772386b4b7af7 [12/12] mm: combine readable and writable device exclusive entries into SWP_DEVICE_EXCLUSIVE
config: arc-randconfig-001-20250125 (https://download.01.org/0day-ci/archive/20250125/202501251551.At4FVF82-lkp@intel.com/config)
compiler: arceb-elf-gcc (GCC) 13.2.0
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20250125/202501251551.At4FVF82-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@intel.com>
| Closes: https://lore.kernel.org/oe-kbuild-all/202501251551.At4FVF82-lkp@intel.com/

All errors (new ones prefixed by >>):

   mm/migrate.c: In function 'remove_migration_pte':
>> mm/migrate.c:294:33: error: implicit declaration of function 'make_device_private_entry'; did you mean 'is_device_private_entry'? [-Werror=implicit-function-declaration]
     294 |                         entry = make_device_private_entry(page_to_pfn(new));
         |                                 ^~~~~~~~~~~~~~~~~~~~~~~~~
         |                                 is_device_private_entry
>> mm/migrate.c:294:33: error: incompatible types when assigning to type 'swp_entry_t' from type 'int'
   cc1: some warnings being treated as errors


vim +294 mm/migrate.c

   235	
   236	/*
   237	 * Restore a potential migration pte to a working pte entry
   238	 */
   239	static bool remove_migration_pte(struct folio *folio,
   240			struct vm_area_struct *vma, unsigned long addr, void *arg)
   241	{
   242		struct rmap_walk_arg *rmap_walk_arg = arg;
   243		DEFINE_FOLIO_VMA_WALK(pvmw, rmap_walk_arg->folio, vma, addr, PVMW_SYNC | PVMW_MIGRATION);
   244	
   245		while (page_vma_mapped_walk(&pvmw)) {
   246			rmap_t rmap_flags = RMAP_NONE;
   247			pte_t old_pte;
   248			pte_t pte;
   249			swp_entry_t entry;
   250			struct page *new;
   251			unsigned long idx = 0;
   252	
   253			/* pgoff is invalid for ksm pages, but they are never large */
   254			if (folio_test_large(folio) && !folio_test_hugetlb(folio))
   255				idx = linear_page_index(vma, pvmw.address) - pvmw.pgoff;
   256			new = folio_page(folio, idx);
   257	
   258	#ifdef CONFIG_ARCH_ENABLE_THP_MIGRATION
   259			/* PMD-mapped THP migration entry */
   260			if (!pvmw.pte) {
   261				VM_BUG_ON_FOLIO(folio_test_hugetlb(folio) ||
   262						!folio_test_pmd_mappable(folio), folio);
   263				remove_migration_pmd(&pvmw, new);
   264				continue;
   265			}
   266	#endif
   267			if (rmap_walk_arg->map_unused_to_zeropage &&
   268			    try_to_map_unused_to_zeropage(&pvmw, folio, idx))
   269				continue;
   270	
   271			folio_get(folio);
   272			pte = mk_pte(new, READ_ONCE(vma->vm_page_prot));
   273			old_pte = ptep_get(pvmw.pte);
   274	
   275			entry = pte_to_swp_entry(old_pte);
   276			if (!is_migration_entry_young(entry))
   277				pte = pte_mkold(pte);
   278			if (folio_test_dirty(folio) && is_migration_entry_dirty(entry))
   279				pte = pte_mkdirty(pte);
   280			if (pte_swp_soft_dirty(old_pte))
   281				pte = pte_mksoft_dirty(pte);
   282			else
   283				pte = pte_clear_soft_dirty(pte);
   284	
   285			if (is_writable_migration_entry(entry))
   286				pte = pte_mkwrite(pte, vma);
   287			else if (pte_swp_uffd_wp(old_pte))
   288				pte = pte_mkuffd_wp(pte);
   289	
   290			if (folio_test_anon(folio) && !is_readable_migration_entry(entry))
   291				rmap_flags |= RMAP_EXCLUSIVE;
   292	
   293			if (unlikely(is_device_private_page(new))) {
 > 294				entry = make_device_private_entry(page_to_pfn(new));
   295				pte = swp_entry_to_pte(entry);
   296				if (pte_swp_soft_dirty(old_pte))
   297					pte = pte_swp_mksoft_dirty(pte);
   298				if (pte_swp_uffd_wp(old_pte))
   299					pte = pte_swp_mkuffd_wp(pte);
   300			}
   301	

-- 
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki

                 reply	other threads:[~2025-01-25  8:01 UTC|newest]

Thread overview: [no followups] expand[flat|nested]  mbox.gz  Atom feed

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=202501251551.At4FVF82-lkp@intel.com \
    --to=lkp@intel.com \
    --cc=david@redhat.com \
    --cc=oe-kbuild-all@lists.linux.dev \
    /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.