* [riteshharjani:feat-secret-memfd-rfc-v1-0day 2/4] mm/secretmem.c:142:23: error: too few arguments to function 'set_direct_map_invalid_noflush'
@ 2026-10-10 9:22 kernel test robot
0 siblings, 0 replies; only message in thread
From: kernel test robot @ 2026-10-10 9:22 UTC (permalink / raw)
To: Ritesh Harjani (IBM); +Cc: oe-kbuild-all
tree: https://github.com/riteshharjani/linux feat-secret-memfd-rfc-v1-0day
head: 80c52d3311e732619c0c339b4a03e92859ba98a1
commit: 744ed18f924d7aeb1a92993e90971120f0b7d4d4 [2/4] powerpc/64s/radix: Implement ARCH_HAS_SET_DIRECT_MAP
config: powerpc64-allnoconfig-bpf (https://download.01.org/0day-ci/archive/20261010/202610101141.WQ2vkOKS-lkp@intel.com/config)
compiler: powerpc64-linux-gnu-gcc (Debian 14.2.0-19) 14.2.0
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20261010/202610101141.WQ2vkOKS-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/202610101141.WQ2vkOKS-lkp@intel.com/
All errors (new ones prefixed by >>):
mm/vmalloc.c: In function 'vm_reset_perms':
>> mm/vmalloc.c:3403:35: error: passing argument 2 of 'set_area_direct_map' from incompatible pointer type [-Wincompatible-pointer-types]
3403 | set_area_direct_map(area, set_direct_map_invalid_noflush);
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
| |
| int (*)(struct page *, unsigned int)
mm/vmalloc.c:3361:46: note: expected 'int (*)(struct page *)' but argument is of type 'int (*)(struct page *, unsigned int)'
3361 | int (*set_direct_map)(struct page *page))
| ~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
mm/vmalloc.c:3405:35: error: passing argument 2 of 'set_area_direct_map' from incompatible pointer type [-Wincompatible-pointer-types]
3405 | set_area_direct_map(area, set_direct_map_default_noflush);
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
| |
| int (*)(struct page *, unsigned int)
mm/vmalloc.c:3361:46: note: expected 'int (*)(struct page *)' but argument is of type 'int (*)(struct page *, unsigned int)'
3361 | int (*set_direct_map)(struct page *page))
| ~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
--
mm/secretmem.c: In function 'secretmem_fault':
>> mm/secretmem.c:142:23: error: too few arguments to function 'set_direct_map_invalid_noflush'
142 | err = set_direct_map_invalid_noflush(folio_page(folio, 0));
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from ./include/linux/set_memory.h:9,
from mm/secretmem.c:19:
./arch/powerpc/include/asm/set_memory.h:55:5: note: declared here
55 | int set_direct_map_invalid_noflush(struct page *page, unsigned int numpages);
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
>> mm/secretmem.c:159:25: error: too few arguments to function 'set_direct_map_default_noflush'
159 | set_direct_map_default_noflush(folio_page(folio, 0));
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
./arch/powerpc/include/asm/set_memory.h:56:5: note: declared here
56 | int set_direct_map_default_noflush(struct page *page, unsigned int numpages);
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
mm/secretmem.c: In function 'secretmem_free_folio':
mm/secretmem.c:231:9: error: too few arguments to function 'set_direct_map_default_noflush'
231 | set_direct_map_default_noflush(folio_page(folio, 0));
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
./arch/powerpc/include/asm/set_memory.h:56:5: note: declared here
56 | int set_direct_map_default_noflush(struct page *page, unsigned int numpages);
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
vim +/set_direct_map_invalid_noflush +142 mm/secretmem.c
97d34aa65c29cc Lorenzo Stoakes (ARM 2026-08-26 109)
1507f51255c9ff Mike Rapoport 2021-07-07 110 static vm_fault_t secretmem_fault(struct vm_fault *vmf)
1507f51255c9ff Mike Rapoport 2021-07-07 111 {
1507f51255c9ff Mike Rapoport 2021-07-07 112 struct address_space *mapping = vmf->vma->vm_file->f_mapping;
1507f51255c9ff Mike Rapoport 2021-07-07 113 struct inode *inode = file_inode(vmf->vma->vm_file);
97d34aa65c29cc Lorenzo Stoakes (ARM 2026-08-26 114) struct secretmem_inode_state *state = inode->i_private;
1507f51255c9ff Mike Rapoport 2021-07-07 115 pgoff_t offset = vmf->pgoff;
1507f51255c9ff Mike Rapoport 2021-07-07 116 gfp_t gfp = vmf->gfp_mask;
1507f51255c9ff Mike Rapoport 2021-07-07 117 unsigned long addr;
7e2fca52ef918e ZhangPeng 2023-08-12 118 struct folio *folio;
84ac013046ccc4 Mike Rapoport 2022-07-07 119 vm_fault_t ret;
1507f51255c9ff Mike Rapoport 2021-07-07 120 int err;
1507f51255c9ff Mike Rapoport 2021-07-07 121
1507f51255c9ff Mike Rapoport 2021-07-07 122 if (((loff_t)vmf->pgoff << PAGE_SHIFT) >= i_size_read(inode))
1507f51255c9ff Mike Rapoport 2021-07-07 123 return vmf_error(-EINVAL);
1507f51255c9ff Mike Rapoport 2021-07-07 124
84ac013046ccc4 Mike Rapoport 2022-07-07 125 filemap_invalidate_lock_shared(mapping);
84ac013046ccc4 Mike Rapoport 2022-07-07 126
1507f51255c9ff Mike Rapoport 2021-07-07 127 retry:
32925ee63beb7e Matthew Wilcox (Oracle 2025-06-13 128) folio = filemap_lock_folio(mapping, offset);
32925ee63beb7e Matthew Wilcox (Oracle 2025-06-13 129) if (IS_ERR(folio)) {
7e2fca52ef918e ZhangPeng 2023-08-12 130 folio = folio_alloc(gfp | __GFP_ZERO, 0);
7e2fca52ef918e ZhangPeng 2023-08-12 131 if (!folio) {
84ac013046ccc4 Mike Rapoport 2022-07-07 132 ret = VM_FAULT_OOM;
84ac013046ccc4 Mike Rapoport 2022-07-07 133 goto out;
84ac013046ccc4 Mike Rapoport 2022-07-07 134 }
1507f51255c9ff Mike Rapoport 2021-07-07 135
97d34aa65c29cc Lorenzo Stoakes (ARM 2026-08-26 136) if (!secretmem_account_folio(state, folio)) {
97d34aa65c29cc Lorenzo Stoakes (ARM 2026-08-26 137) folio_put(folio);
97d34aa65c29cc Lorenzo Stoakes (ARM 2026-08-26 138) ret = VM_FAULT_SIGBUS;
97d34aa65c29cc Lorenzo Stoakes (ARM 2026-08-26 139) goto out;
97d34aa65c29cc Lorenzo Stoakes (ARM 2026-08-26 140) }
97d34aa65c29cc Lorenzo Stoakes (ARM 2026-08-26 141)
32925ee63beb7e Matthew Wilcox (Oracle 2025-06-13 @142) err = set_direct_map_invalid_noflush(folio_page(folio, 0));
1507f51255c9ff Mike Rapoport 2021-07-07 143 if (err) {
97d34aa65c29cc Lorenzo Stoakes (ARM 2026-08-26 144) secretmem_unaccount_folio(state, folio);
7e2fca52ef918e ZhangPeng 2023-08-12 145 folio_put(folio);
84ac013046ccc4 Mike Rapoport 2022-07-07 146 ret = vmf_error(err);
84ac013046ccc4 Mike Rapoport 2022-07-07 147 goto out;
1507f51255c9ff Mike Rapoport 2021-07-07 148 }
1507f51255c9ff Mike Rapoport 2021-07-07 149
7e2fca52ef918e ZhangPeng 2023-08-12 150 __folio_mark_uptodate(folio);
7e2fca52ef918e ZhangPeng 2023-08-12 151 err = filemap_add_folio(mapping, folio, offset, gfp);
1507f51255c9ff Mike Rapoport 2021-07-07 152 if (unlikely(err)) {
97d34aa65c29cc Lorenzo Stoakes (ARM 2026-08-26 153) secretmem_unaccount_folio(state, folio);
1507f51255c9ff Mike Rapoport 2021-07-07 154 /*
1507f51255c9ff Mike Rapoport 2021-07-07 155 * If a split of large page was required, it
1507f51255c9ff Mike Rapoport 2021-07-07 156 * already happened when we marked the page invalid
1507f51255c9ff Mike Rapoport 2021-07-07 157 * which guarantees that this call won't fail
1507f51255c9ff Mike Rapoport 2021-07-07 158 */
32925ee63beb7e Matthew Wilcox (Oracle 2025-06-13 @159) set_direct_map_default_noflush(folio_page(folio, 0));
6f86d0534fddfb Lance Yang 2025-10-31 160 folio_put(folio);
1507f51255c9ff Mike Rapoport 2021-07-07 161 if (err == -EEXIST)
1507f51255c9ff Mike Rapoport 2021-07-07 162 goto retry;
1507f51255c9ff Mike Rapoport 2021-07-07 163
84ac013046ccc4 Mike Rapoport 2022-07-07 164 ret = vmf_error(err);
84ac013046ccc4 Mike Rapoport 2022-07-07 165 goto out;
1507f51255c9ff Mike Rapoport 2021-07-07 166 }
1507f51255c9ff Mike Rapoport 2021-07-07 167
32925ee63beb7e Matthew Wilcox (Oracle 2025-06-13 168) addr = (unsigned long)folio_address(folio);
1507f51255c9ff Mike Rapoport 2021-07-07 169 flush_tlb_kernel_range(addr, addr + PAGE_SIZE);
1507f51255c9ff Mike Rapoport 2021-07-07 170 }
1507f51255c9ff Mike Rapoport 2021-07-07 171
32925ee63beb7e Matthew Wilcox (Oracle 2025-06-13 172) vmf->page = folio_file_page(folio, vmf->pgoff);
84ac013046ccc4 Mike Rapoport 2022-07-07 173 ret = VM_FAULT_LOCKED;
84ac013046ccc4 Mike Rapoport 2022-07-07 174
84ac013046ccc4 Mike Rapoport 2022-07-07 175 out:
84ac013046ccc4 Mike Rapoport 2022-07-07 176 filemap_invalidate_unlock_shared(mapping);
84ac013046ccc4 Mike Rapoport 2022-07-07 177 return ret;
1507f51255c9ff Mike Rapoport 2021-07-07 178 }
1507f51255c9ff Mike Rapoport 2021-07-07 179
:::::: The code at line 142 was first introduced by commit
:::::: 32925ee63beb7e1a3fad25e2f54cefa2d32612de secretmem: remove uses of struct page
:::::: TO: Matthew Wilcox (Oracle) <willy@infradead.org>
:::::: CC: Andrew Morton <akpm@linux-foundation.org>
--
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:[~2026-10-10 9:23 UTC | newest]
Thread overview: (only message) (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-10-10 9:22 [riteshharjani:feat-secret-memfd-rfc-v1-0day 2/4] mm/secretmem.c:142:23: error: too few arguments to function 'set_direct_map_invalid_noflush' 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.