Re: [PATCH 42/50] sem: Split out sem_types.h

From: Geert Uytterhoeven
Date: Wed Dec 20 2023 - 06:54:13 EST


Hi Kent,

On Sat, Dec 16, 2023 at 4:37 AM Kent Overstreet
<kent.overstreet@xxxxxxxxx> wrote:
> More sched.h dependency pruning.
>
> Signed-off-by: Kent Overstreet <kent.overstreet@xxxxxxxxx>

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

--
Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- geert@xxxxxxxxxxxxxx

In personal conversations with technical people, I call myself a hacker. But
when I'm talking to journalists I just say "programmer" or something like that.
-- Linus Torvalds