From 8ecd2953d0a1b78748b36f5bed6f233f5bd6d6ea Mon Sep 17 00:00:00 2001 From: Stephen Rothwell Date: Wed, 28 Mar 2018 18:41:25 +1100 Subject: ipc/shm: fix up for struct file no longer being available in shm.h Stephen Rothewell wrote: > After merging the userns tree, today's linux-next build (powerpc > ppc64_defconfig) produced this warning: > > In file included from include/linux/sched.h:16:0, > from arch/powerpc/lib/xor_vmx_glue.c:14: > include/linux/shm.h:17:35: error: 'struct file' declared inside parameter list will not be visible outside of this definition or declaration [-Werror] > bool is_file_shm_hugepages(struct file *file); > ^~~~ > > and many, many more (most warnings, but some errors - arch/powerpc is > mostly built with -Werror) I dug through this and I discovered that the error was caused by the removal of struct shmid_kernel from shm.h when building on powerpc. Except for observing the existence of "struct file *shm_file" in struct shmid_kernel I have no clue why the structure move would cause such a failure. I suspect shm.h always needed the forward declaration and someting had been confusing gcc into not issuing the warning. --EWB Fixes: a2e102cd3cdd ("shm: Move struct shmid_kernel into ipc/shm.c") Signed-off-by: Stephen Rothwell Signed-off-by: Eric W. Biederman --- include/linux/shm.h | 2 ++ 1 file changed, 2 insertions(+) diff --git a/include/linux/shm.h b/include/linux/shm.h index 3a8eae3..d8e69ae 100644 --- a/include/linux/shm.h +++ b/include/linux/shm.h @@ -7,6 +7,8 @@ #include #include +struct file; + #ifdef CONFIG_SYSVIPC struct sysv_shm { struct list_head shm_clist; -- cgit v1.1