Message ID | 20231216033300.3553457-10-kent.overstreet@linux.dev (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | big header dependency cleanup targeting sched.h | expand |
Hi Kent, On Sat, Dec 16, 2023 at 4:37 AM Kent Overstreet <kent.overstreet@linux.dev> wrote: > More sched.h dependency pruning. > > Signed-off-by: Kent Overstreet <kent.overstreet@linux.dev> Thanks for your patch, which is now commit eb72d60ccaed883a ("sem: Split out sem_types.h") in next-20231220. $ make ARCH=m68k defconfig arch/m68k/kernel/asm-offsets.i *** Default configuration is based on 'multi_defconfig' # # No change to .config # UPD include/config/kernel.release UPD include/generated/utsrelease.h CC arch/m68k/kernel/asm-offsets.s In file included from arch/m68k/kernel/asm-offsets.c:15: ./include/linux/sched.h:551:3: error: conflicting types for ‘____cacheline_aligned’ 551 | } ____cacheline_aligned; | ^~~~~~~~~~~~~~~~~~~~~ ./include/linux/sched.h:509:3: note: previous declaration of ‘____cacheline_aligned’ was here 509 | } ____cacheline_aligned; | ^~~~~~~~~~~~~~~~~~~~~ make[3]: *** [scripts/Makefile.build:116: arch/m68k/kernel/asm-offsets.s] Error 1 make[2]: *** [Makefile:1191: prepare0] Error 2 make[1]: *** [Makefile:350: __build_one_by_one] Error 2 make: *** [Makefile:234: __sub-make] Error 2 > --- a/include/linux/audit.h > +++ b/include/linux/audit.h > @@ -400,6 +400,7 @@ static inline void audit_ptrace(struct task_struct *t) > } > > /* Private API (for audit.c only) */ > +struct kern_ipc_perm; > extern void __audit_ipc_obj(struct kern_ipc_perm *ipcp); > extern void __audit_ipc_set_perm(unsigned long qbytes, uid_t uid, gid_t gid, umode_t mode); > extern void __audit_bprm(struct linux_binprm *bprm); > diff --git a/include/linux/sched.h b/include/linux/sched.h > index 157e7af36bb7..98885e3a81e8 100644 > --- a/include/linux/sched.h > +++ b/include/linux/sched.h > @@ -13,12 +13,13 @@ > > #include <linux/irqflags_types.h> > #include <linux/pid_types.h> > -#include <linux/sem.h> > +#include <linux/sem_types.h> > #include <linux/shm.h> > #include <linux/kmsan_types.h> > #include <linux/mutex_types.h> > #include <linux/plist_types.h> > #include <linux/hrtimer_types.h> > +#include <linux/timer_types.h> > #include <linux/seccomp_types.h> > #include <linux/nodemask_types.h> > #include <linux/rcupdate.h> > diff --git a/include/linux/sem.h b/include/linux/sem.h > index 5608a500c43e..c4deefe42aeb 100644 > --- a/include/linux/sem.h > +++ b/include/linux/sem.h > @@ -3,25 +3,17 @@ > #define _LINUX_SEM_H > > #include <uapi/linux/sem.h> > +#include <linux/sem_types.h> > > struct task_struct; > -struct sem_undo_list; > > #ifdef CONFIG_SYSVIPC > > -struct sysv_sem { > - struct sem_undo_list *undo_list; > -}; > - > extern int copy_semundo(unsigned long clone_flags, struct task_struct *tsk); > extern void exit_sem(struct task_struct *tsk); > > #else > > -struct sysv_sem { > - /* empty */ > -}; > - > static inline int copy_semundo(unsigned long clone_flags, struct task_struct *tsk) > { > return 0; > diff --git a/include/linux/sem_types.h b/include/linux/sem_types.h > new file mode 100644 > index 000000000000..73df1971a7ae > --- /dev/null > +++ b/include/linux/sem_types.h > @@ -0,0 +1,13 @@ > +/* SPDX-License-Identifier: GPL-2.0 */ > +#ifndef _LINUX_SEM_TYPES_H > +#define _LINUX_SEM_TYPES_H > + > +struct sem_undo_list; > + > +struct sysv_sem { > +#ifdef CONFIG_SYSVIPC > + struct sem_undo_list *undo_list; > +#endif > +}; > + > +#endif /* _LINUX_SEM_TYPES_H */ > Gr{oetje,eeting}s, Geert
On Wed, Dec 20, 2023 at 12:53:46PM +0100, Geert Uytterhoeven wrote: > Hi Kent, > > On Sat, Dec 16, 2023 at 4:37 AM Kent Overstreet > <kent.overstreet@linux.dev> wrote: > > More sched.h dependency pruning. > > > > Signed-off-by: Kent Overstreet <kent.overstreet@linux.dev> > > Thanks for your patch, which is now commit eb72d60ccaed883a ("sem: > Split out sem_types.h") in next-20231220. > > $ make ARCH=m68k defconfig arch/m68k/kernel/asm-offsets.i > *** Default configuration is based on 'multi_defconfig' > # > # No change to .config > # > UPD include/config/kernel.release > UPD include/generated/utsrelease.h > CC arch/m68k/kernel/asm-offsets.s > In file included from arch/m68k/kernel/asm-offsets.c:15: > ./include/linux/sched.h:551:3: error: conflicting types for > ‘____cacheline_aligned’ > 551 | } ____cacheline_aligned; > | ^~~~~~~~~~~~~~~~~~~~~ > ./include/linux/sched.h:509:3: note: previous declaration of > ‘____cacheline_aligned’ was here > 509 | } ____cacheline_aligned; > | ^~~~~~~~~~~~~~~~~~~~~ > make[3]: *** [scripts/Makefile.build:116: > arch/m68k/kernel/asm-offsets.s] Error 1 > make[2]: *** [Makefile:1191: prepare0] Error 2 > make[1]: *** [Makefile:350: __build_one_by_one] Error 2 > make: *** [Makefile:234: __sub-make] Error 2 Is this a build failure on linux-next, or that specific commit? It looks like this should be fixed in a later commit that includes cache.h in sched.h; I'll move that include back to this patch.
Hi Kent, On Wed, Dec 20, 2023 at 10:39 PM Kent Overstreet <kent.overstreet@linux.dev> wrote: > On Wed, Dec 20, 2023 at 12:53:46PM +0100, Geert Uytterhoeven wrote: > > On Sat, Dec 16, 2023 at 4:37 AM Kent Overstreet > > <kent.overstreet@linux.dev> wrote: > > > More sched.h dependency pruning. > > > > > > Signed-off-by: Kent Overstreet <kent.overstreet@linux.dev> > > > > Thanks for your patch, which is now commit eb72d60ccaed883a ("sem: > > Split out sem_types.h") in next-20231220. > > > > $ make ARCH=m68k defconfig arch/m68k/kernel/asm-offsets.i > > *** Default configuration is based on 'multi_defconfig' > > # > > # No change to .config > > # > > UPD include/config/kernel.release > > UPD include/generated/utsrelease.h > > CC arch/m68k/kernel/asm-offsets.s > > In file included from arch/m68k/kernel/asm-offsets.c:15: > > ./include/linux/sched.h:551:3: error: conflicting types for > > ‘____cacheline_aligned’ > > 551 | } ____cacheline_aligned; > > | ^~~~~~~~~~~~~~~~~~~~~ > > ./include/linux/sched.h:509:3: note: previous declaration of > > ‘____cacheline_aligned’ was here > > 509 | } ____cacheline_aligned; > > | ^~~~~~~~~~~~~~~~~~~~~ > > make[3]: *** [scripts/Makefile.build:116: > > arch/m68k/kernel/asm-offsets.s] Error 1 > > make[2]: *** [Makefile:1191: prepare0] Error 2 > > make[1]: *** [Makefile:350: __build_one_by_one] Error 2 > > make: *** [Makefile:234: __sub-make] Error 2 > > Is this a build failure on linux-next, or that specific commit? On this specific commit. > It looks like this should be fixed in a later commit that includes > cache.h in sched.h; I'll move that include back to this patch. Indeed. The robots reported a build failure, and bisection arrived at this (different) build failure first. Gr{oetje,eeting}s, Geert
diff --git a/include/linux/audit.h b/include/linux/audit.h index 51b1b7054a23..93d97b56e1e4 100644 --- a/include/linux/audit.h +++ b/include/linux/audit.h @@ -400,6 +400,7 @@ static inline void audit_ptrace(struct task_struct *t) } /* Private API (for audit.c only) */ +struct kern_ipc_perm; extern void __audit_ipc_obj(struct kern_ipc_perm *ipcp); extern void __audit_ipc_set_perm(unsigned long qbytes, uid_t uid, gid_t gid, umode_t mode); extern void __audit_bprm(struct linux_binprm *bprm); diff --git a/include/linux/sched.h b/include/linux/sched.h index 157e7af36bb7..98885e3a81e8 100644 --- a/include/linux/sched.h +++ b/include/linux/sched.h @@ -13,12 +13,13 @@ #include <linux/irqflags_types.h> #include <linux/pid_types.h> -#include <linux/sem.h> +#include <linux/sem_types.h> #include <linux/shm.h> #include <linux/kmsan_types.h> #include <linux/mutex_types.h> #include <linux/plist_types.h> #include <linux/hrtimer_types.h> +#include <linux/timer_types.h> #include <linux/seccomp_types.h> #include <linux/nodemask_types.h> #include <linux/rcupdate.h> diff --git a/include/linux/sem.h b/include/linux/sem.h index 5608a500c43e..c4deefe42aeb 100644 --- a/include/linux/sem.h +++ b/include/linux/sem.h @@ -3,25 +3,17 @@ #define _LINUX_SEM_H #include <uapi/linux/sem.h> +#include <linux/sem_types.h> struct task_struct; -struct sem_undo_list; #ifdef CONFIG_SYSVIPC -struct sysv_sem { - struct sem_undo_list *undo_list; -}; - extern int copy_semundo(unsigned long clone_flags, struct task_struct *tsk); extern void exit_sem(struct task_struct *tsk); #else -struct sysv_sem { - /* empty */ -}; - static inline int copy_semundo(unsigned long clone_flags, struct task_struct *tsk) { return 0; diff --git a/include/linux/sem_types.h b/include/linux/sem_types.h new file mode 100644 index 000000000000..73df1971a7ae --- /dev/null +++ b/include/linux/sem_types.h @@ -0,0 +1,13 @@ +/* SPDX-License-Identifier: GPL-2.0 */ +#ifndef _LINUX_SEM_TYPES_H +#define _LINUX_SEM_TYPES_H + +struct sem_undo_list; + +struct sysv_sem { +#ifdef CONFIG_SYSVIPC + struct sem_undo_list *undo_list; +#endif +}; + +#endif /* _LINUX_SEM_TYPES_H */
More sched.h dependency pruning. Signed-off-by: Kent Overstreet <kent.overstreet@linux.dev> --- include/linux/audit.h | 1 + include/linux/sched.h | 3 ++- include/linux/sem.h | 10 +--------- include/linux/sem_types.h | 13 +++++++++++++ 4 files changed, 17 insertions(+), 10 deletions(-) create mode 100644 include/linux/sem_types.h