Re: [PATCH] mm, hugetlbfs: include mm.h for vm_operations_struct

From: Michal Hocko
Date: Tue Dec 12 2017 - 02:47:33 EST


On Mon 11-12-17 17:21:27, Arnd Bergmann wrote:
> The infiniband umem code causes a build failure in some configurations:
>
> In file included from drivers/infiniband/core/umem_odp.c:41:0:
> include/linux/hugetlb.h: In function 'vma_kernel_pagesize':
> include/linux/hugetlb.h:262:32: error: dereferencing pointer to incomplete type 'const struct vm_operations_struct'
>
> Including the header file that defines the structure is sufficient to
> avoid this.
>
> Fixes: ac9284a6b670 ("mm, hugetlbfs: introduce ->pagesize() to vm_operations_struct")
> Signed-off-by: Arnd Bergmann <arnd@xxxxxxxx>

I've tried to do the same but the compilation failed for other
arches/configs. See http://lkml.kernel.org/r/20171210113715.GE20234@xxxxxxxxxxxxxx

> ---
> include/linux/hugetlb.h | 1 +
> 1 file changed, 1 insertion(+)
>
> diff --git a/include/linux/hugetlb.h b/include/linux/hugetlb.h
> index b0f1f6768336..082ff47201be 100644
> --- a/include/linux/hugetlb.h
> +++ b/include/linux/hugetlb.h
> @@ -9,6 +9,7 @@
> #include <linux/cgroup.h>
> #include <linux/list.h>
> #include <linux/kref.h>
> +#include <linux/mm.h>
> #include <asm/pgtable.h>
>
> struct ctl_table;
> --
> 2.9.0
>

--
Michal Hocko
SUSE Labs