* [rppt:execmem/x86-rox/v8 3/6] arch/x86/mm/pat/set_memory.c:1314:17: error: implicit declaration of function 'collapse_page_count'; did you mean 'update_page_count'?
@ 2024-12-22 14:25 kernel test robot
0 siblings, 0 replies; only message in thread
From: kernel test robot @ 2024-12-22 14:25 UTC (permalink / raw)
To: Kirill A. Shutemov; +Cc: oe-kbuild-all, Mike Rapoport
tree: https://git.kernel.org/pub/scm/linux/kernel/git/rppt/linux.git execmem/x86-rox/v8
head: 6c4eb6e17cdd71fe4df151523bb69db507c52b8c
commit: 84b77b5e5004c02f0f731ca69c66a8d8f4bcbc6c [3/6] x86/mm/pat: Restore large pages after fragmentation
config: x86_64-buildonly-randconfig-004-20241222 (https://download.01.org/0day-ci/archive/20241222/202412222227.GhIMiwUp-lkp@intel.com/config)
compiler: gcc-12 (Debian 12.2.0-14) 12.2.0
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20241222/202412222227.GhIMiwUp-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/202412222227.GhIMiwUp-lkp@intel.com/
All errors (new ones prefixed by >>):
arch/x86/mm/pat/set_memory.c: In function 'collapse_pmd_page':
>> arch/x86/mm/pat/set_memory.c:1314:17: error: implicit declaration of function 'collapse_page_count'; did you mean 'update_page_count'? [-Werror=implicit-function-declaration]
1314 | collapse_page_count(PG_LEVEL_2M);
| ^~~~~~~~~~~~~~~~~~~
| update_page_count
cc1: some warnings being treated as errors
vim +1314 arch/x86/mm/pat/set_memory.c
1251
1252 static int collapse_pmd_page(pmd_t *pmd, unsigned long addr,
1253 struct list_head *pgtables)
1254 {
1255 pmd_t _pmd, old_pmd;
1256 pte_t *pte, first;
1257 unsigned long pfn;
1258 pgprot_t pgprot;
1259 int i = 0;
1260
1261 addr &= PMD_MASK;
1262 pte = pte_offset_kernel(pmd, addr);
1263 first = *pte;
1264 pfn = pte_pfn(first);
1265
1266 /* Make sure alignment is suitable */
1267 if (PFN_PHYS(pfn) & ~PMD_MASK)
1268 return 0;
1269
1270 /* The page is 4k intentionally */
1271 if (pte_flags(first) & _PAGE_KERNEL_4K)
1272 return 0;
1273
1274 /* Check that the rest of PTEs are compatible with the first one */
1275 for (i = 1, pte++; i < PTRS_PER_PTE; i++, pte++) {
1276 pte_t entry = *pte;
1277
1278 if (!pte_present(entry))
1279 return 0;
1280 if (pte_flags(entry) != pte_flags(first))
1281 return 0;
1282 if (pte_pfn(entry) != pte_pfn(first) + i)
1283 return 0;
1284 }
1285
1286 old_pmd = *pmd;
1287
1288 /* Success: set up a large page */
1289 pgprot = pgprot_4k_2_large(pte_pgprot(first));
1290 pgprot_val(pgprot) |= _PAGE_PSE;
1291 _pmd = pfn_pmd(pfn, pgprot);
1292 set_pmd(pmd, _pmd);
1293
1294 /* Queue the page table to be freed after TLB flush */
1295 list_add(&page_ptdesc(pmd_page(old_pmd))->pt_list, pgtables);
1296
1297 if (IS_ENABLED(CONFIG_X86_32) && !SHARED_KERNEL_PMD) {
1298 struct page *page;
1299
1300 /* Update all PGD tables to use the same large page */
1301 list_for_each_entry(page, &pgd_list, lru) {
1302 pgd_t *pgd = (pgd_t *)page_address(page) + pgd_index(addr);
1303 p4d_t *p4d = p4d_offset(pgd, addr);
1304 pud_t *pud = pud_offset(p4d, addr);
1305 pmd_t *pmd = pmd_offset(pud, addr);
1306 /* Something is wrong if entries doesn't match */
1307 if (WARN_ON(pmd_val(old_pmd) != pmd_val(*pmd)))
1308 continue;
1309 set_pmd(pmd, _pmd);
1310 }
1311 }
1312
1313 if (pfn_range_is_mapped(pfn, pfn + 1))
> 1314 collapse_page_count(PG_LEVEL_2M);
1315
1316 return 1;
1317 }
1318
--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki
^ permalink raw reply [flat|nested] only message in thread
only message in thread, other threads:[~2024-12-22 14:26 UTC | newest]
Thread overview: (only message) (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2024-12-22 14:25 [rppt:execmem/x86-rox/v8 3/6] arch/x86/mm/pat/set_memory.c:1314:17: error: implicit declaration of function 'collapse_page_count'; did you mean 'update_page_count'? kernel test robot
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.