Hi Nico, kernel test robot noticed the following build errors: [auto build test ERROR on arm64/for-next/core] [also build test ERROR on arm/for-next arm/fixes kvmarm/next soc/for-next linus/master v6.5-rc1 next-20230711] [If your patch is applied to the wrong git tree, kindly drop us a note. And when submitting patch, we suggest to use '--base' as documented in https://git-scm.com/docs/git-format-patch#_base_tree_information] url: https://github.com/intel-lab-lkp/linux/commits/Nico-Pache/arm64-properly-define-SOFT_DIRTY-functionality/20230704-213758 base: https://git.kernel.org/pub/scm/linux/kernel/git/arm64/linux.git for-next/core patch link: https://lore.kernel.org/r/20230704133633.1918147-1-npache%40redhat.com patch subject: [PATCH V2] arm64: properly define SOFT_DIRTY functionality config: arm64-randconfig-r001-20230712 (https://download.01.org/0day-ci/archive/20230712/202307120618.qcxXw9mm-lkp@xxxxxxxxx/config) compiler: aarch64-linux-gcc (GCC) 12.3.0 reproduce: (https://download.01.org/0day-ci/archive/20230712/202307120618.qcxXw9mm-lkp@xxxxxxxxx/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@xxxxxxxxx> | Closes: https://lore.kernel.org/oe-kbuild-all/202307120618.qcxXw9mm-lkp@xxxxxxxxx/ All errors (new ones prefixed by >>): In file included from include/linux/mm_inline.h:10, from fs/proc/task_mmu.c:3: include/linux/swapops.h: In function 'pte_swp_clear_flags': include/linux/swapops.h:77:23: error: implicit declaration of function 'pte_swp_clear_soft_dirty'; did you mean 'pte_swp_soft_dirty'? [-Werror=implicit-function-declaration] 77 | pte = pte_swp_clear_soft_dirty(pte); | ^~~~~~~~~~~~~~~~~~~~~~~~ | pte_swp_soft_dirty include/linux/swapops.h:77:23: error: incompatible types when assigning to type 'pte_t' from type 'int' include/linux/swapops.h: In function 'pmd_to_swp_entry': include/linux/swapops.h:506:13: error: implicit declaration of function 'pmd_swp_soft_dirty'; did you mean 'pte_swp_soft_dirty'? [-Werror=implicit-function-declaration] 506 | if (pmd_swp_soft_dirty(pmd)) | ^~~~~~~~~~~~~~~~~~ | pte_swp_soft_dirty include/linux/swapops.h:507:23: error: implicit declaration of function 'pmd_swp_clear_soft_dirty'; did you mean 'pmd_swp_clear_uffd_wp'? [-Werror=implicit-function-declaration] 507 | pmd = pmd_swp_clear_soft_dirty(pmd); | ^~~~~~~~~~~~~~~~~~~~~~~~ | pmd_swp_clear_uffd_wp include/linux/swapops.h:507:23: error: incompatible types when assigning to type 'pmd_t' from type 'int' fs/proc/task_mmu.c: In function 'pagemap_pmd_range': >> fs/proc/task_mmu.c:1488:29: error: implicit declaration of function 'pmd_soft_dirty'; did you mean 'pte_soft_dirty'? [-Werror=implicit-function-declaration] 1488 | if (pmd_soft_dirty(pmd)) | ^~~~~~~~~~~~~~ | pte_soft_dirty cc1: some warnings being treated as errors vim +1488 fs/proc/task_mmu.c bcf8039ed45f56 Dave Hansen 2008-06-12 1463 356515e7b64c26 Konstantin Khlebnikov 2015-09-08 1464 static int pagemap_pmd_range(pmd_t *pmdp, unsigned long addr, unsigned long end, 2165009bdf63f7 Dave Hansen 2008-06-12 1465 struct mm_walk *walk) 85863e475e59af Matt Mackall 2008-02-04 1466 { f995ece24dfecb Naoya Horiguchi 2015-02-11 1467 struct vm_area_struct *vma = walk->vma; 2165009bdf63f7 Dave Hansen 2008-06-12 1468 struct pagemapread *pm = walk->private; bf929152e9f6c4 Kirill A. Shutemov 2013-11-14 1469 spinlock_t *ptl; 05fbf357d94152 Konstantin Khlebnikov 2015-02-11 1470 pte_t *pte, *orig_pte; 85863e475e59af Matt Mackall 2008-02-04 1471 int err = 0; 356515e7b64c26 Konstantin Khlebnikov 2015-09-08 1472 #ifdef CONFIG_TRANSPARENT_HUGEPAGE 24d7275ce27918 Yang Shi 2022-02-11 1473 bool migration = false; 24d7275ce27918 Yang Shi 2022-02-11 1474 b6ec57f4b92e9b Kirill A. Shutemov 2016-01-21 1475 ptl = pmd_trans_huge_lock(pmdp, vma); b6ec57f4b92e9b Kirill A. Shutemov 2016-01-21 1476 if (ptl) { 356515e7b64c26 Konstantin Khlebnikov 2015-09-08 1477 u64 flags = 0, frame = 0; 356515e7b64c26 Konstantin Khlebnikov 2015-09-08 1478 pmd_t pmd = *pmdp; 84c3fc4e9c563d Zi Yan 2017-09-08 1479 struct page *page = NULL; 0f8975ec4db2c8 Pavel Emelyanov 2013-07-03 1480 b83d7e432399d4 Huang Ying 2017-11-02 1481 if (vma->vm_flags & VM_SOFTDIRTY) deb945441b9408 Konstantin Khlebnikov 2015-09-08 1482 flags |= PM_SOFT_DIRTY; d9104d1ca96624 Cyrill Gorcunov 2013-09-11 1483 356515e7b64c26 Konstantin Khlebnikov 2015-09-08 1484 if (pmd_present(pmd)) { 84c3fc4e9c563d Zi Yan 2017-09-08 1485 page = pmd_page(pmd); 77bb499bb60f4b Konstantin Khlebnikov 2015-09-08 1486 356515e7b64c26 Konstantin Khlebnikov 2015-09-08 1487 flags |= PM_PRESENT; b83d7e432399d4 Huang Ying 2017-11-02 @1488 if (pmd_soft_dirty(pmd)) b83d7e432399d4 Huang Ying 2017-11-02 1489 flags |= PM_SOFT_DIRTY; fb8e37f35a2fe1 Peter Xu 2021-06-30 1490 if (pmd_uffd_wp(pmd)) fb8e37f35a2fe1 Peter Xu 2021-06-30 1491 flags |= PM_UFFD_WP; 1c90308e7a77af Konstantin Khlebnikov 2015-09-08 1492 if (pm->show_pfn) 356515e7b64c26 Konstantin Khlebnikov 2015-09-08 1493 frame = pmd_pfn(pmd) + 356515e7b64c26 Konstantin Khlebnikov 2015-09-08 1494 ((addr & ~PMD_MASK) >> PAGE_SHIFT); 356515e7b64c26 Konstantin Khlebnikov 2015-09-08 1495 } 84c3fc4e9c563d Zi Yan 2017-09-08 1496 #ifdef CONFIG_ARCH_ENABLE_THP_MIGRATION 84c3fc4e9c563d Zi Yan 2017-09-08 1497 else if (is_swap_pmd(pmd)) { 84c3fc4e9c563d Zi Yan 2017-09-08 1498 swp_entry_t entry = pmd_to_swp_entry(pmd); ab6ecf247a9321 Huang Ying 2018-06-07 1499 unsigned long offset; 84c3fc4e9c563d Zi Yan 2017-09-08 1500 ab6ecf247a9321 Huang Ying 2018-06-07 1501 if (pm->show_pfn) { 0d206b5d2e0d7d Peter Xu 2022-08-11 1502 if (is_pfn_swap_entry(entry)) 0d206b5d2e0d7d Peter Xu 2022-08-11 1503 offset = swp_offset_pfn(entry); 0d206b5d2e0d7d Peter Xu 2022-08-11 1504 else 0d206b5d2e0d7d Peter Xu 2022-08-11 1505 offset = swp_offset(entry); 0d206b5d2e0d7d Peter Xu 2022-08-11 1506 offset = offset + ab6ecf247a9321 Huang Ying 2018-06-07 1507 ((addr & ~PMD_MASK) >> PAGE_SHIFT); 84c3fc4e9c563d Zi Yan 2017-09-08 1508 frame = swp_type(entry) | 88c28f2469151b Huang Ying 2018-04-20 1509 (offset << MAX_SWAPFILES_SHIFT); ab6ecf247a9321 Huang Ying 2018-06-07 1510 } 84c3fc4e9c563d Zi Yan 2017-09-08 1511 flags |= PM_SWAP; b83d7e432399d4 Huang Ying 2017-11-02 1512 if (pmd_swp_soft_dirty(pmd)) b83d7e432399d4 Huang Ying 2017-11-02 1513 flags |= PM_SOFT_DIRTY; fb8e37f35a2fe1 Peter Xu 2021-06-30 1514 if (pmd_swp_uffd_wp(pmd)) fb8e37f35a2fe1 Peter Xu 2021-06-30 1515 flags |= PM_UFFD_WP; 84c3fc4e9c563d Zi Yan 2017-09-08 1516 VM_BUG_ON(!is_pmd_migration_entry(pmd)); 24d7275ce27918 Yang Shi 2022-02-11 1517 migration = is_migration_entry(entry); af5cdaf82238fb Alistair Popple 2021-06-30 1518 page = pfn_swap_entry_to_page(entry); 84c3fc4e9c563d Zi Yan 2017-09-08 1519 } 84c3fc4e9c563d Zi Yan 2017-09-08 1520 #endif 84c3fc4e9c563d Zi Yan 2017-09-08 1521 24d7275ce27918 Yang Shi 2022-02-11 1522 if (page && !migration && page_mapcount(page) == 1) 84c3fc4e9c563d Zi Yan 2017-09-08 1523 flags |= PM_MMAP_EXCLUSIVE; 356515e7b64c26 Konstantin Khlebnikov 2015-09-08 1524 5aaabe831eb527 Naoya Horiguchi 2012-03-21 1525 for (; addr != end; addr += PAGE_SIZE) { 356515e7b64c26 Konstantin Khlebnikov 2015-09-08 1526 pagemap_entry_t pme = make_pme(frame, flags); 5aaabe831eb527 Naoya Horiguchi 2012-03-21 1527 092b50bacd1cdb Naoya Horiguchi 2012-03-21 1528 err = add_to_pagemap(addr, &pme, pm); 5aaabe831eb527 Naoya Horiguchi 2012-03-21 1529 if (err) 5aaabe831eb527 Naoya Horiguchi 2012-03-21 1530 break; ab6ecf247a9321 Huang Ying 2018-06-07 1531 if (pm->show_pfn) { ab6ecf247a9321 Huang Ying 2018-06-07 1532 if (flags & PM_PRESENT) 356515e7b64c26 Konstantin Khlebnikov 2015-09-08 1533 frame++; 88c28f2469151b Huang Ying 2018-04-20 1534 else if (flags & PM_SWAP) 88c28f2469151b Huang Ying 2018-04-20 1535 frame += (1 << MAX_SWAPFILES_SHIFT); 5aaabe831eb527 Naoya Horiguchi 2012-03-21 1536 } ab6ecf247a9321 Huang Ying 2018-06-07 1537 } bf929152e9f6c4 Kirill A. Shutemov 2013-11-14 1538 spin_unlock(ptl); 5aaabe831eb527 Naoya Horiguchi 2012-03-21 1539 return err; 5aaabe831eb527 Naoya Horiguchi 2012-03-21 1540 } 5aaabe831eb527 Naoya Horiguchi 2012-03-21 1541 356515e7b64c26 Konstantin Khlebnikov 2015-09-08 1542 if (pmd_trans_unstable(pmdp)) 45f83cefe3a5f0 Andrea Arcangeli 2012-03-28 1543 return 0; 356515e7b64c26 Konstantin Khlebnikov 2015-09-08 1544 #endif /* CONFIG_TRANSPARENT_HUGEPAGE */ bcf8039ed45f56 Dave Hansen 2008-06-12 1545 81d0fa623c5b8d Peter Feiner 2014-10-09 1546 /* f995ece24dfecb Naoya Horiguchi 2015-02-11 1547 * We can assume that @vma always points to a valid one and @end never f995ece24dfecb Naoya Horiguchi 2015-02-11 1548 * goes beyond vma->vm_end. 81d0fa623c5b8d Peter Feiner 2014-10-09 1549 */ 356515e7b64c26 Konstantin Khlebnikov 2015-09-08 1550 orig_pte = pte = pte_offset_map_lock(walk->mm, pmdp, addr, &ptl); f995ece24dfecb Naoya Horiguchi 2015-02-11 1551 for (; addr < end; pte++, addr += PAGE_SIZE) { 81d0fa623c5b8d Peter Feiner 2014-10-09 1552 pagemap_entry_t pme; 05fbf357d94152 Konstantin Khlebnikov 2015-02-11 1553 deb945441b9408 Konstantin Khlebnikov 2015-09-08 1554 pme = pte_to_pagemap_entry(pm, vma, addr, *pte); 092b50bacd1cdb Naoya Horiguchi 2012-03-21 1555 err = add_to_pagemap(addr, &pme, pm); 85863e475e59af Matt Mackall 2008-02-04 1556 if (err) 05fbf357d94152 Konstantin Khlebnikov 2015-02-11 1557 break; 85863e475e59af Matt Mackall 2008-02-04 1558 } 05fbf357d94152 Konstantin Khlebnikov 2015-02-11 1559 pte_unmap_unlock(orig_pte, ptl); 05fbf357d94152 Konstantin Khlebnikov 2015-02-11 1560 85863e475e59af Matt Mackall 2008-02-04 1561 cond_resched(); 85863e475e59af Matt Mackall 2008-02-04 1562 85863e475e59af Matt Mackall 2008-02-04 1563 return err; 85863e475e59af Matt Mackall 2008-02-04 1564 } 85863e475e59af Matt Mackall 2008-02-04 1565 -- 0-DAY CI Kernel Test Service https://github.com/intel/lkp-tests/wiki