On 2024/7/8 1:12, Alexander Duyck wrote: ... > The issue is the dependency mess that has been created with patch 11 > in the set. Again you are conflating patches which makes this really > hard to debug or discuss as I make suggestions on one patch and you > claim it breaks things that are really due to issues in another patch. > So the issue is you included this header into include/linux/sched.h > which is included in linux/mm_types.h. So what happens then is that > you have to include page_frag_cache.h *before* you can include the > bits from mm_types.h > > What might make more sense to solve this is to look at just moving the > page_frag_cache into mm_types_task.h and then having it replace the > page_frag struct there since mm_types.h will pull that in anyway. That > way sched.h can avoid having to pull in page_frag_cache.h. It seems the above didn't work either, as asm-offsets.c does depend on mm_types_task.h too. In file included from ./include/linux/mm.h:16, from ./include/linux/page_frag_cache.h:10, from ./include/linux/mm_types_task.h:11, from ./include/linux/mm_types.h:5, from ./include/linux/mmzone.h:22, from ./include/linux/gfp.h:7, from ./include/linux/slab.h:16, from ./include/linux/resource_ext.h:11, from ./include/linux/acpi.h:13, from ./include/acpi/apei.h:9, from ./include/acpi/ghes.h:5, from ./include/linux/arm_sdei.h:8, from arch/arm64/kernel/asm-offsets.c:10: ./include/linux/mmap_lock.h: In function ‘mmap_assert_locked’: ./include/linux/mmap_lock.h:65:23: error: invalid use of undefined type ‘const struct mm_struct’ 65 | rwsem_assert_held(&mm->mmap_lock); > . >