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 | #include <linux/nodemask.h> | 36 | #include <linux/nodemask.h> |
| 37 | 37 | ||
| 38 | struct vm_area_struct; | 38 | struct vm_area_struct; |
| 39 | struct mm_struct; | ||
| 39 | 40 | ||
| 40 | #ifdef CONFIG_NUMA | 41 | #ifdef CONFIG_NUMA |
| 41 | 42 | ||