* Re: [RFC PATCH] mm/hugetlb: fix resv_map memory leak in __mmap_region error path
[not found] <20260425070700.562229-1-25181214217@stu.xidian.edu.cn>
@ 2026-05-01 22:03 ` kernel test robot
2026-05-01 22:14 ` kernel test robot
1 sibling, 0 replies; 2+ messages in thread
From: kernel test robot @ 2026-05-01 22:03 UTC (permalink / raw)
To: Mingyu Wang; +Cc: llvm, oe-kbuild-all
Hi Mingyu,
[This is a private test report for your RFC patch.]
kernel test robot noticed the following build warnings:
[auto build test WARNING on akpm-mm/mm-everything]
url: https://github.com/intel-lab-lkp/linux/commits/Mingyu-Wang/mm-hugetlb-fix-resv_map-memory-leak-in-__mmap_region-error-path/20260425-203812
base: https://git.kernel.org/pub/scm/linux/kernel/git/akpm/mm.git mm-everything
patch link: https://lore.kernel.org/r/20260425070700.562229-1-25181214217%40stu.xidian.edu.cn
patch subject: [RFC PATCH] mm/hugetlb: fix resv_map memory leak in __mmap_region error path
config: arm-allnoconfig (https://download.01.org/0day-ci/archive/20260502/202605020650.VNBzVdYb-lkp@intel.com/config)
compiler: clang version 23.0.0git (https://github.com/llvm/llvm-project 5bac06718f502014fade905512f1d26d578a18f3)
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20260502/202605020650.VNBzVdYb-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/202605020650.VNBzVdYb-lkp@intel.com/
All warnings (new ones prefixed by >>):
In file included from arch/arm/kernel/asm-offsets.c:14:
In file included from include/linux/mm.h:8:
In file included from include/linux/gfp.h:7:
In file included from include/linux/mmzone.h:22:
>> include/linux/mm_types.h:865:28: warning: declaration of 'struct vm_area_desc' will not be visible outside of this function [-Wvisibility]
865 | void (*abort_hook)(struct vm_area_desc *desc);
| ^
1 warning generated.
--
In file included from kernel/fork.c:16:
In file included from include/linux/slab.h:17:
In file included from include/linux/gfp.h:7:
In file included from include/linux/mmzone.h:22:
>> include/linux/mm_types.h:865:28: warning: declaration of 'struct vm_area_desc' will not be visible outside of this function [-Wvisibility]
865 | void (*abort_hook)(struct vm_area_desc *desc);
| ^
In file included from kernel/fork.c:34:
In file included from include/linux/mempolicy.h:16:
include/linux/pagemap.h:521:45: error: use of undeclared identifier 'PMD_SHIFT'
521 | return mapping_max_folio_order(mapping) >= PMD_ORDER;
| ^~~~~~~~~
include/linux/pgtable.h:8:20: note: expanded from macro 'PMD_ORDER'
8 | #define PMD_ORDER (PMD_SHIFT - PAGE_SHIFT)
| ^~~~~~~~~
In file included from kernel/fork.c:42:
include/linux/mman.h:157:9: warning: division by zero is undefined [-Wdivision-by-zero]
157 | _calc_vm_trans(flags, MAP_SYNC, VM_SYNC ) |
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
include/linux/mman.h:135:21: note: expanded from macro '_calc_vm_trans'
135 | : ((x) & (bit1)) / ((bit1) / (bit2))))
| ^ ~~~~~~~~~~~~~~~~~
2 warnings and 1 error generated.
--
In file included from kernel/cpu.c:5:
In file included from include/linux/sched/mm.h:8:
>> include/linux/mm_types.h:865:28: warning: declaration of 'struct vm_area_desc' will not be visible outside of this function [-Wvisibility]
865 | void (*abort_hook)(struct vm_area_desc *desc);
| ^
In file included from kernel/cpu.c:26:
In file included from include/linux/suspend.h:5:
In file included from include/linux/swap.h:13:
include/linux/pagemap.h:521:45: error: use of undeclared identifier 'PMD_SHIFT'
521 | return mapping_max_folio_order(mapping) >= PMD_ORDER;
| ^~~~~~~~~
include/linux/pgtable.h:8:20: note: expanded from macro 'PMD_ORDER'
8 | #define PMD_ORDER (PMD_SHIFT - PAGE_SHIFT)
| ^~~~~~~~~
1 warning and 1 error generated.
--
In file included from kernel/sched/core.c:12:
In file included from include/linux/highmem.h:5:
In file included from include/linux/fs.h:5:
In file included from include/linux/fs/super.h:5:
In file included from include/linux/fs/super_types.h:7:
In file included from include/linux/list_lru.h:14:
In file included from include/linux/xarray.h:16:
In file included from include/linux/gfp.h:7:
In file included from include/linux/mmzone.h:22:
>> include/linux/mm_types.h:865:28: warning: declaration of 'struct vm_area_desc' will not be visible outside of this function [-Wvisibility]
865 | void (*abort_hook)(struct vm_area_desc *desc);
| ^
In file included from kernel/sched/core.c:83:
In file included from arch/arm/include/asm/tlb.h:21:
include/linux/pagemap.h:521:45: error: use of undeclared identifier 'PMD_SHIFT'
521 | return mapping_max_folio_order(mapping) >= PMD_ORDER;
| ^~~~~~~~~
include/linux/pgtable.h:8:20: note: expanded from macro 'PMD_ORDER'
8 | #define PMD_ORDER (PMD_SHIFT - PAGE_SHIFT)
| ^~~~~~~~~
kernel/sched/core.c:8053:12: warning: array index -1 is before the beginning of the array [-Warray-bounds]
8053 | preempt_modes[preempt_dynamic_mode] : "undef",
| ^ ~~~~~~~~~~~~~~~~~~~~
kernel/sched/core.c:8028:1: note: array 'preempt_modes' declared here
8028 | const char *preempt_modes[] = {
| ^
2 warnings and 1 error generated.
--
In file included from kernel/time/timekeeping.c:6:
In file included from include/linux/audit.h:13:
In file included from include/linux/ptrace.h:7:
In file included from include/linux/sched/signal.h:9:
In file included from include/linux/sched/task.h:13:
In file included from include/linux/uaccess.h:13:
In file included from arch/arm/include/asm/uaccess.h:17:
In file included from arch/arm/include/asm/pgtable.h:16:
In file included from arch/arm/include/asm/pgtable-nommu.h:13:
In file included from include/linux/slab.h:17:
In file included from include/linux/gfp.h:7:
In file included from include/linux/mmzone.h:22:
>> include/linux/mm_types.h:865:28: warning: declaration of 'struct vm_area_desc' will not be visible outside of this function [-Wvisibility]
865 | void (*abort_hook)(struct vm_area_desc *desc);
| ^
kernel/time/timekeeping.c:1948:13: warning: variable 'suspend_timing_needed' set but not used [-Wunused-but-set-global]
1948 | static bool suspend_timing_needed;
| ^
2 warnings generated.
--
In file included from kernel/time/alarmtimer.c:18:
In file included from include/linux/rtc.h:17:
In file included from include/linux/interrupt.h:11:
In file included from include/linux/hardirq.h:11:
In file included from arch/arm/include/asm/hardirq.h:10:
In file included from include/asm-generic/hardirq.h:17:
In file included from include/linux/irq.h:19:
In file included from include/linux/topology.h:34:
In file included from include/linux/mmzone.h:22:
>> include/linux/mm_types.h:865:28: warning: declaration of 'struct vm_area_desc' will not be visible outside of this function [-Wvisibility]
865 | void (*abort_hook)(struct vm_area_desc *desc);
| ^
kernel/time/alarmtimer.c:54:29: warning: variable 'freezer_alarmtype' set but not used [-Wunused-but-set-global]
54 | static enum alarmtimer_type freezer_alarmtype;
| ^
kernel/time/alarmtimer.c:55:16: warning: variable 'freezer_expires' set but not used [-Wunused-but-set-global]
55 | static ktime_t freezer_expires;
| ^
3 warnings generated.
--
In file included from arch/arm/kernel/asm-offsets.c:14:
In file included from include/linux/mm.h:8:
In file included from include/linux/gfp.h:7:
In file included from include/linux/mmzone.h:22:
>> include/linux/mm_types.h:865:28: warning: declaration of 'struct vm_area_desc' will not be visible outside of this function [-Wvisibility]
865 | void (*abort_hook)(struct vm_area_desc *desc);
| ^
1 warning generated.
In file included from kernel/sched/rq-offsets.c:5:
In file included from kernel/sched/sched.h:15:
In file included from include/linux/sched/mm.h:8:
>> include/linux/mm_types.h:865:28: warning: declaration of 'struct vm_area_desc' will not be visible outside of this function [-Wvisibility]
865 | void (*abort_hook)(struct vm_area_desc *desc);
| ^
1 warning generated.
vim +865 include/linux/mm_types.h
820
821 /*
822 * Describes an action an mmap_prepare hook can instruct to be taken to complete
823 * the mapping of a VMA. Specified in vm_area_desc.
824 */
825 struct mmap_action {
826 union {
827 struct {
828 unsigned long start;
829 unsigned long start_pfn;
830 unsigned long size;
831 pgprot_t pgprot;
832 } remap;
833 struct {
834 phys_addr_t start_phys_addr;
835 unsigned long size;
836 } simple_ioremap;
837 struct {
838 unsigned long start;
839 struct page **pages;
840 unsigned long nr_pages;
841 pgoff_t pgoff;
842 } map_kernel;
843 };
844 enum mmap_action_type type;
845
846 /*
847 * If specified, this hook is invoked after the selected action has been
848 * successfully completed. Note that the VMA write lock still held.
849 *
850 * The absolute minimum ought to be done here.
851 *
852 * Returns 0 on success, or an error code.
853 */
854 int (*success_hook)(const struct vm_area_struct *vma);
855
856 /*
857 * If specified, this hook is invoked when an error occurred when
858 * attempting the selected action.
859 *
860 * The hook can return an error code in order to filter the error, but
861 * it is not valid to clear the error here.
862 */
863 int (*error_hook)(int err);
864
> 865 void (*abort_hook)(struct vm_area_desc *desc);
866
867 /*
868 * This should be set in rare instances where the operation required
869 * that the rmap should not be able to access the VMA until
870 * completely set up.
871 */
872 bool hide_from_rmap_until_complete :1;
873 };
874
--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki
^ permalink raw reply [flat|nested] 2+ messages in thread
* Re: [RFC PATCH] mm/hugetlb: fix resv_map memory leak in __mmap_region error path
[not found] <20260425070700.562229-1-25181214217@stu.xidian.edu.cn>
2026-05-01 22:03 ` [RFC PATCH] mm/hugetlb: fix resv_map memory leak in __mmap_region error path kernel test robot
@ 2026-05-01 22:14 ` kernel test robot
1 sibling, 0 replies; 2+ messages in thread
From: kernel test robot @ 2026-05-01 22:14 UTC (permalink / raw)
To: Mingyu Wang; +Cc: llvm, oe-kbuild-all
Hi Mingyu,
[This is a private test report for your RFC patch.]
kernel test robot noticed the following build errors:
[auto build test ERROR on akpm-mm/mm-everything]
url: https://github.com/intel-lab-lkp/linux/commits/Mingyu-Wang/mm-hugetlb-fix-resv_map-memory-leak-in-__mmap_region-error-path/20260425-203812
base: https://git.kernel.org/pub/scm/linux/kernel/git/akpm/mm.git mm-everything
patch link: https://lore.kernel.org/r/20260425070700.562229-1-25181214217%40stu.xidian.edu.cn
patch subject: [RFC PATCH] mm/hugetlb: fix resv_map memory leak in __mmap_region error path
config: hexagon-allnoconfig (https://download.01.org/0day-ci/archive/20260502/202605020645.8318Xwwx-lkp@intel.com/config)
compiler: clang version 23.0.0git (https://github.com/llvm/llvm-project 5bac06718f502014fade905512f1d26d578a18f3)
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20260502/202605020645.8318Xwwx-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/202605020645.8318Xwwx-lkp@intel.com/
All errors (new ones prefixed by >>):
In file included from mm/vma.c:7:
In file included from mm/vma_internal.h:12:
In file included from include/linux/backing-dev.h:13:
In file included from include/linux/fs.h:5:
In file included from include/linux/fs/super.h:5:
In file included from include/linux/fs/super_types.h:7:
In file included from include/linux/list_lru.h:14:
In file included from include/linux/xarray.h:16:
In file included from include/linux/gfp.h:7:
In file included from include/linux/mmzone.h:22:
include/linux/mm_types.h:865:28: warning: declaration of 'struct vm_area_desc' will not be visible outside of this function [-Wvisibility]
865 | void (*abort_hook)(struct vm_area_desc *desc);
| ^
>> mm/vma.c:2805:26: error: incompatible pointer types passing 'struct vm_area_desc *' to parameter of type 'struct vm_area_desc *' [-Wincompatible-pointer-types]
2805 | desc.action.abort_hook(&desc);
| ^~~~~
1 warning and 1 error generated.
vim +2805 mm/vma.c
2731
2732 static unsigned long __mmap_region(struct file *file, unsigned long addr,
2733 unsigned long len, vma_flags_t vma_flags,
2734 unsigned long pgoff, struct list_head *uf)
2735 {
2736 struct mm_struct *mm = current->mm;
2737 struct vm_area_struct *vma = NULL;
2738 bool have_mmap_prepare = file && file->f_op->mmap_prepare;
2739 VMA_ITERATOR(vmi, mm, addr);
2740 MMAP_STATE(map, mm, &vmi, addr, len, pgoff, vma_flags, file);
2741 struct vm_area_desc desc = {
2742 .mm = mm,
2743 .file = file,
2744 .action = {
2745 .type = MMAP_NOTHING, /* Default to no further action. */
2746 },
2747 };
2748 bool allocated_new = false;
2749 int error;
2750
2751 map.check_ksm_early = can_set_ksm_flags_early(&map);
2752
2753 error = __mmap_setup(&map, &desc, uf);
2754 if (!error && have_mmap_prepare)
2755 error = call_mmap_prepare(&map, &desc);
2756 if (error)
2757 goto abort_munmap;
2758
2759 if (map.check_ksm_early)
2760 update_ksm_flags(&map);
2761
2762 /* Attempt to merge with adjacent VMAs... */
2763 if (map.prev || map.next) {
2764 VMG_MMAP_STATE(vmg, &map, /* vma = */ NULL);
2765
2766 vma = vma_merge_new_range(&vmg);
2767 }
2768
2769 /* ...but if we can't, allocate a new VMA. */
2770 if (!vma) {
2771 error = __mmap_new_vma(&map, &vma, &desc.action);
2772 if (error)
2773 goto unacct_error;
2774 allocated_new = true;
2775 }
2776
2777 if (have_mmap_prepare)
2778 set_vma_user_defined_fields(vma, &map);
2779
2780 __mmap_complete(&map, vma);
2781
2782 if (have_mmap_prepare && allocated_new) {
2783 error = mmap_action_complete(vma, &desc.action,
2784 /*is_compat=*/false);
2785 if (error)
2786 return error;
2787 }
2788
2789 return addr;
2790
2791 /* Accounting was done by __mmap_setup(). */
2792 unacct_error:
2793 if (map.charged)
2794 vm_unacct_memory(map.charged);
2795 abort_munmap:
2796 /*
2797 * This indicates that .mmap_prepare has set a new file, differing from
2798 * desc->vm_file. But since we're aborting the operation, only the
2799 * original file will be cleaned up. Ensure we clean up both.
2800 */
2801 if (map.file_doesnt_need_get)
2802 fput(map.file);
2803
2804 if (have_mmap_prepare && desc.action.abort_hook)
> 2805 desc.action.abort_hook(&desc);
2806
2807 vms_abort_munmap_vmas(&map.vms, &map.mas_detach);
2808 return error;
2809 }
2810
--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki
^ permalink raw reply [flat|nested] 2+ messages in thread
end of thread, other threads:[~2026-05-01 22:15 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
[not found] <20260425070700.562229-1-25181214217@stu.xidian.edu.cn>
2026-05-01 22:03 ` [RFC PATCH] mm/hugetlb: fix resv_map memory leak in __mmap_region error path kernel test robot
2026-05-01 22:14 ` kernel test robot
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox