[linux-next:master 6918/7793] mm/page_owner.c:818:22: error: passing 'memdesc_flags_t *' to parameter of incompatible type 'memdesc_flags_t'; remove &

kernel test robot <[email protected]>
Newsgroups dev.linux.lists.oe-kbuild-all,dev.linux.lists.llvm,org.kvack.linux-mm
Message-ID <[email protected]>
tree:   https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git master
head:   3fe08b9796f36ef437ab9328e7dd1e5ff2d66603
commit: 2e3c4a69b0c52d1f75d13c3ac380625143888e18 [6918/7793] mm-page_owner-add-numa-node-filter-fix
config: i386-randconfig-r134-20260721 (https://download.01.org/0day-ci/archive/20260721/[email protected]/config)
compiler: clang version 22.1.3 (https://github.com/llvm/llvm-project e9846648fd6183ee6d8cbdb4502213fcf902a211)
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20260721/[email protected]/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 <[email protected]>
| Closes: https://lore.kernel.org/oe-kbuild-all/[email protected]/

Note: the linux-next/master HEAD 3fe08b9796f36ef437ab9328e7dd1e5ff2d66603 builds fine.
      It may have been fixed somewhere.

All errors (new ones prefixed by >>):

>> mm/page_owner.c:818:22: error: passing 'memdesc_flags_t *' to parameter of incompatible type 'memdesc_flags_t'; remove &
     818 |                         nid = memdesc_nid(&page_flags);
         |                                           ^~~~~~~~~~~
   include/linux/mm.h:2291:47: note: passing argument to parameter 'mdf' here
    2291 | static inline int memdesc_nid(memdesc_flags_t mdf)
         |                                               ^
   1 error generated.


vim +818 mm/page_owner.c

   727	
   728	static ssize_t
   729	read_page_owner(struct file *file, char __user *buf, size_t count, loff_t *ppos)
   730	{
   731		unsigned long pfn;
   732		struct page *page;
   733		struct page_ext *page_ext;
   734		struct page_owner *page_owner;
   735		depot_stack_handle_t handle;
   736		struct page_owner_filter_state *state = file->private_data;
   737	
   738		if (!static_branch_unlikely(&page_owner_inited))
   739			return -EINVAL;
   740	
   741		page = NULL;
   742		if (*ppos == 0)
   743			pfn = min_low_pfn;
   744		else
   745			pfn = *ppos;
   746		/* Find a valid PFN or the start of a MAX_ORDER_NR_PAGES area */
   747		while (!pfn_valid(pfn) && (pfn & (MAX_ORDER_NR_PAGES - 1)) != 0)
   748			pfn++;
   749	
   750		/* Find an allocated page */
   751		for (; pfn < max_pfn; pfn++) {
   752			/*
   753			 * This temporary page_owner is required so
   754			 * that we can avoid the context switches while holding
   755			 * the rcu lock and copying the page owner information to
   756			 * user through copy_to_user() or GFP_KERNEL allocations.
   757			 */
   758			struct page_owner page_owner_tmp;
   759	
   760			/*
   761			 * If the new page is in a new MAX_ORDER_NR_PAGES area,
   762			 * validate the area as existing, skip it if not
   763			 */
   764			if ((pfn & (MAX_ORDER_NR_PAGES - 1)) == 0 && !pfn_valid(pfn)) {
   765				pfn += MAX_ORDER_NR_PAGES - 1;
   766				continue;
   767			}
   768	
   769			page = pfn_to_page(pfn);
   770			if (skip_buddy_pages(&pfn, page))
   771				continue;
   772	
   773			page_ext = page_ext_get(page);
   774			if (unlikely(!page_ext))
   775				continue;
   776	
   777			/*
   778			 * Some pages could be missed by concurrent allocation or free,
   779			 * because we don't hold the zone lock.
   780			 */
   781			if (!test_bit(PAGE_EXT_OWNER, &page_ext->flags))
   782				goto ext_put_continue;
   783	
   784			/*
   785			 * Although we do have the info about past allocation of free
   786			 * pages, it's not relevant for current memory usage.
   787			 */
   788			if (!test_bit(PAGE_EXT_OWNER_ALLOCATED, &page_ext->flags))
   789				goto ext_put_continue;
   790	
   791			page_owner = get_page_owner(page_ext);
   792	
   793			/*
   794			 * Don't print "tail" pages of high-order allocations as that
   795			 * would inflate the stats.
   796			 */
   797			if (!IS_ALIGNED(pfn, 1 << page_owner->order))
   798				goto ext_put_continue;
   799	
   800			/*
   801			 * Access to page_ext->handle isn't synchronous so we should
   802			 * be careful to access it.
   803			 */
   804			handle = READ_ONCE(page_owner->handle);
   805			if (!handle)
   806				goto ext_put_continue;
   807	
   808			if (state->nid_filter_enabled) {
   809				int nid;
   810				memdesc_flags_t page_flags = READ_ONCE(page->flags);
   811	
   812				/*
   813				 * Bypass PF_POISONED_CHECK() in page_to_nid() to avoid
   814				 * VM_BUG_ON when accessing poisoned pages.
   815				 */
   816				if (page_flags.f == PAGE_POISON_PATTERN)
   817					goto ext_put_continue;
 > 818				nid = memdesc_nid(&page_flags);
   819				if (!node_isset(nid, state->nid_filter))
   820					goto ext_put_continue;
   821			}
   822	
   823			/* Record the next PFN to read in the file offset */
   824			*ppos = pfn + 1;
   825	
   826			page_owner_tmp = *page_owner;
   827			page_ext_put(page_ext);
   828			return print_page_owner(buf, count, pfn, page,
   829					&page_owner_tmp, handle, state);
   830	ext_put_continue:
   831			page_ext_put(page_ext);
   832			cond_resched();
   833		}
   834	
   835		return 0;
   836	}
   837	

--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.