On Mon, Apr 03, 2023 at 12:12:55PM +0100, Steven Price wrote: > When !CONFIG_SHMEM smaps_shmem_walk_ops is defined but not used, > triggering a compiler warning. Surround the definition with an #ifdef to > keep the compiler happy. > > Fixes: 7b86ac3371b7 ("pagewalk: separate function pointers from iterator data") > Reported-by: kernel test robot <lkp@xxxxxxxxx> > Link: https://lore.kernel.org/oe-kbuild-all/202304031749.UiyJpxzF-lkp@xxxxxxxxx/ > Signed-off-by: Steven Price <steven.price@xxxxxxx> > --- > fs/proc/task_mmu.c | 2 ++ > 1 file changed, 2 insertions(+) I think it would be better to enclose the definition of shmem_swap_usage() in its header with a stub like shmem_mapping and remove the ifdef completely. shmem_mapping() is already compile time false. #ifdef CONFIG_SHMEM if (vma->vm_file && shmem_mapping(vma->vm_file->f_mapping)) { /* * For shared or readonly shmem mappings we know that all * swapped out pages belong to the shmem object, and we can * obtain the swap value much more efficiently. For private * writable mappings, we might have COW pages that are * not affected by the parent swapped out pages of the shmem * object, so we have to distinguish them during the page walk. * Unless we know that the shmem object (or the part mapped by * our VMA) has no swapped out pages at all. */ unsigned long shmem_swapped = shmem_swap_usage(vma); if (!start && (!shmem_swapped || (vma->vm_flags & VM_SHARED) || !(vma->vm_flags & VM_WRITE))) { mss->swap += shmem_swapped; } else { ops = &smaps_shmem_walk_ops; } } #endif Jason