From: Ralf Baechle <ralf@linux-mips.org> <linux/mempolicy.h> uses struct mm_struct and relies on a definition or declaration somehow magically being dragged in which may result in a build: [...] CC mm/mempolicy.o In file included from mm/mempolicy.c:69: include/linux/mempolicy.h:150: warning: âstruct mm_structâ declared inside parameter list include/linux/mempolicy.h:150: warning: its scope is only this definition or declaration, which is probably not what you want include/linux/mempolicy.h:175: warning: âstruct mm_structâ declared inside parameter list mm/mempolicy.c:622: error: conflicting types for âdo_migrate_pagesâ include/linux/mempolicy.h:175: error: previous declaration of âdo_migrate_pagesâ was here mm/mempolicy.c:1661: error: conflicting types for âmpol_rebind_mmâ include/linux/mempolicy.h:150: error: previous declaration of âmpol_rebind_mmâ was here make[1]: *** [mm/mempolicy.o] Error 1 make: *** [mm] Error 2 [ralf@denk linux-ip35]$ Including <linux/sched.h> is a step into direction of include hell so fixed by adding a forward declaration of struct mm_struct instead.
Showing the changes to include (1 of 1 file). Show all
Unified · Split
| @@ -36,6 +36,7 @@ · 35 unmodified lines | ||
| 36 | 36 | #include <linux/nodemask.h> |
| 37 | 37 | |
| 38 | 38 | struct vm_area_struct; |
| 39 | +struct mm_struct; | |
| 39 | 40 | |
| 40 | 41 | #ifdef CONFIG_NUMA |
| 41 | 42 | |