On Mon, 27 Jan 2025 23:21:42 +0000 Frank van der Linden <fvdl@xxxxxxxxxx> wrote: > Currently, CMA manages one range of physically contiguous memory. > Creation of larger CMA areas with hugetlb_cma may run in to gaps > in physical memory, so that they are not able to allocate that > contiguous physical range from memblock when creating the CMA > area. > This one breaks my x86_64 allmodconfig build, which I find surprising. Did I miss some dependency? mm/cma_debug.c: In function 'cma_maxchunk_get': mm/cma_debug.c:51:38: error: too few arguments to function 'cma_bitmap_maxno' 51 | unsigned long bitmap_maxno = cma_bitmap_maxno(cma); | ^~~~~~~~~~~~~~~~ In file included from mm/cma_debug.c:16: mm/cma.h:56:29: note: declared here 56 | static inline unsigned long cma_bitmap_maxno(struct cma *cma, | ^~~~~~~~~~~~~~~~ mm/cma_debug.c:55:49: error: 'struct cma' has no member named 'bitmap'; did you mean 'dfs_bitmap'? 55 | start = find_next_zero_bit(cma->bitmap, bitmap_maxno, end); | ^~~~~~ | dfs_bitmap mm/cma_debug.c:58:42: error: 'struct cma' has no member named 'bitmap'; did you mean 'dfs_bitmap'? 58 | end = find_next_bit(cma->bitmap, bitmap_maxno, start); | ^~~~~~ | dfs_bitmap In file included from mm/cma_debug.c:9: mm/cma_debug.c: In function 'cma_debugfs_add_one': mm/cma_debug.c:169:33: error: 'struct cma' has no member named 'base_pfn' 169 | &cma->base_pfn, &cma_debugfs_fops); | ^~ ./include/linux/debugfs.h:129:38: note: in definition of macro 'debugfs_create_file' 129 | (name, mode, parent, data, fops) | ^~~~ mm/cma_debug.c:176:45: error: 'struct cma' has no member named 'bitmap'; did you mean 'dfs_bitmap'? 176 | cma->dfs_bitmap.array = (u32 *)cma->bitmap; | ^~~~~~ | dfs_bitmap In file included from ./include/vdso/const.h:5, from ./include/linux/const.h:4, from ./include/linux/list.h:9, from ./include/linux/wait.h:7, from ./include/linux/wait_bit.h:8, from ./include/linux/fs.h:6, from ./include/linux/debugfs.h:15: mm/cma_debug.c:177:51: error: too few arguments to function 'cma_bitmap_maxno' 177 | cma->dfs_bitmap.n_elements = DIV_ROUND_UP(cma_bitmap_maxno(cma), | ^~~~~~~~~~~~~~~~ ./include/uapi/linux/const.h:51:40: note: in definition of macro '__KERNEL_DIV_ROUND_UP' 51 | #define __KERNEL_DIV_ROUND_UP(n, d) (((n) + (d) - 1) / (d)) | ^ mm/cma_debug.c:177:38: note: in expansion of macro 'DIV_ROUND_UP' 177 | cma->dfs_bitmap.n_elements = DIV_ROUND_UP(cma_bitmap_maxno(cma), | ^~~~~~~~~~~~ mm/cma.h:56:29: note: declared here 56 | static inline unsigned long cma_bitmap_maxno(struct cma *cma, | ^~~~~~~~~~~~~~~~