:p
atchew
Login
The usermode helper declarations were previously provided by linux/kmod.h but commit c1f3fa2a4fde ("kmod: split off umh headers into its own file") moved them to linux/umh.h in 2017. Add explicit includes of linux/umh.h to files that use usermode helpers and remove linux/kmod.h where it is no longer needed. Then clean up linux/kmod.h so that it includes only the headers that it actually requires, importantly removing the compat linux/umh.h include. Apologies for the wide distribution. This cleanup is motivated by trying to reduce the preprocessed size of linux/module.h, which includes linux/kmod.h. The linux/module.h header is included by every *.mod.c file to provide `struct module` and other related definitions, so it should avoid pulling in unnecessary dependencies. Note that this series doesn't immediately improve the situation, since most of the files included by linux/kmod.h are, for now, also included by linux/module.h through other paths. Petr Pavlu (2): umh, treewide: Explicitly include linux/umh.h where needed module: Bring includes in linux/kmod.h up to date arch/x86/kernel/cpu/mce/dev-mcelog.c | 2 +- drivers/block/drbd/drbd_nl.c | 1 + drivers/greybus/svc_watchdog.c | 1 + drivers/macintosh/windfarm_core.c | 1 + drivers/pnp/pnpbios/core.c | 2 +- drivers/video/fbdev/uvesafb.c | 1 + fs/coredump.c | 2 +- fs/nfs/cache_lib.c | 2 +- fs/nfsd/nfs4layouts.c | 2 +- fs/nfsd/nfs4recover.c | 1 + fs/ocfs2/stackglue.c | 1 + include/linux/kmod.h | 12 ++---------- kernel/cgroup/cgroup-v1.c | 1 + kernel/module/kmod.c | 1 + kernel/power/process.c | 2 +- kernel/reboot.c | 2 +- kernel/umh.c | 2 +- lib/kobject_uevent.c | 2 +- net/bridge/br_stp_if.c | 2 +- security/keys/request_key.c | 2 +- security/tomoyo/common.h | 2 +- 21 files changed, 22 insertions(+), 22 deletions(-) base-commit: dc59e4fea9d83f03bad6bddf3fa2e52491777482 -- 2.54.0
The usermode helper declarations were previously provided by linux/kmod.h but commit c1f3fa2a4fde ("kmod: split off umh headers into its own file") moved them to linux/umh.h in 2017. Add explicit includes of linux/umh.h to files that use usermode helpers and remove linux/kmod.h where it is no longer needed. Signed-off-by: Petr Pavlu <petr.pavlu@suse.com> --- arch/x86/kernel/cpu/mce/dev-mcelog.c | 2 +- drivers/block/drbd/drbd_nl.c | 1 + drivers/greybus/svc_watchdog.c | 1 + drivers/macintosh/windfarm_core.c | 1 + drivers/pnp/pnpbios/core.c | 2 +- drivers/video/fbdev/uvesafb.c | 1 + fs/coredump.c | 2 +- fs/nfs/cache_lib.c | 2 +- fs/nfsd/nfs4layouts.c | 2 +- fs/nfsd/nfs4recover.c | 1 + fs/ocfs2/stackglue.c | 1 + kernel/cgroup/cgroup-v1.c | 1 + kernel/module/kmod.c | 1 + kernel/power/process.c | 2 +- kernel/reboot.c | 2 +- kernel/umh.c | 2 +- lib/kobject_uevent.c | 2 +- net/bridge/br_stp_if.c | 2 +- security/keys/request_key.c | 2 +- security/tomoyo/common.h | 2 +- 20 files changed, 20 insertions(+), 12 deletions(-) diff --git a/arch/x86/kernel/cpu/mce/dev-mcelog.c b/arch/x86/kernel/cpu/mce/dev-mcelog.c index XXXXXXX..XXXXXXX 100644 --- a/arch/x86/kernel/cpu/mce/dev-mcelog.c +++ b/arch/x86/kernel/cpu/mce/dev-mcelog.c @@ -XXX,XX +XXX,XX @@ #include <linux/miscdevice.h> #include <linux/slab.h> -#include <linux/kmod.h> +#include <linux/umh.h> #include <linux/poll.h> #include "internal.h" diff --git a/drivers/block/drbd/drbd_nl.c b/drivers/block/drbd/drbd_nl.c index XXXXXXX..XXXXXXX 100644 --- a/drivers/block/drbd/drbd_nl.c +++ b/drivers/block/drbd/drbd_nl.c @@ -XXX,XX +XXX,XX @@ #define pr_fmt(fmt) KBUILD_MODNAME ": " fmt #include <linux/module.h> +#include <linux/umh.h> #include <linux/drbd.h> #include <linux/in.h> #include <linux/fs.h> diff --git a/drivers/greybus/svc_watchdog.c b/drivers/greybus/svc_watchdog.c index XXXXXXX..XXXXXXX 100644 --- a/drivers/greybus/svc_watchdog.c +++ b/drivers/greybus/svc_watchdog.c @@ -XXX,XX +XXX,XX @@ #include <linux/delay.h> #include <linux/suspend.h> +#include <linux/umh.h> #include <linux/workqueue.h> #include <linux/greybus.h> diff --git a/drivers/macintosh/windfarm_core.c b/drivers/macintosh/windfarm_core.c index XXXXXXX..XXXXXXX 100644 --- a/drivers/macintosh/windfarm_core.c +++ b/drivers/macintosh/windfarm_core.c @@ -XXX,XX +XXX,XX @@ #include <linux/platform_device.h> #include <linux/mutex.h> #include <linux/freezer.h> +#include <linux/umh.h> #include "windfarm.h" diff --git a/drivers/pnp/pnpbios/core.c b/drivers/pnp/pnpbios/core.c index XXXXXXX..XXXXXXX 100644 --- a/drivers/pnp/pnpbios/core.c +++ b/drivers/pnp/pnpbios/core.c @@ -XXX,XX +XXX,XX @@ #include <linux/delay.h> #include <linux/acpi.h> #include <linux/freezer.h> -#include <linux/kmod.h> +#include <linux/umh.h> #include <linux/kthread.h> #include <asm/page.h> diff --git a/drivers/video/fbdev/uvesafb.c b/drivers/video/fbdev/uvesafb.c index XXXXXXX..XXXXXXX 100644 --- a/drivers/video/fbdev/uvesafb.c +++ b/drivers/video/fbdev/uvesafb.c @@ -XXX,XX +XXX,XX @@ #include <linux/io.h> #include <linux/mutex.h> #include <linux/slab.h> +#include <linux/umh.h> #include <video/edid.h> #include <video/uvesafb.h> #ifdef CONFIG_X86 diff --git a/fs/coredump.c b/fs/coredump.c index XXXXXXX..XXXXXXX 100644 --- a/fs/coredump.c +++ b/fs/coredump.c @@ -XXX,XX +XXX,XX @@ #include <linux/tsacct_kern.h> #include <linux/cn_proc.h> #include <linux/audit.h> -#include <linux/kmod.h> +#include <linux/umh.h> #include <linux/fsnotify.h> #include <linux/fs_struct.h> #include <linux/pipe_fs_i.h> diff --git a/fs/nfs/cache_lib.c b/fs/nfs/cache_lib.c index XXXXXXX..XXXXXXX 100644 --- a/fs/nfs/cache_lib.c +++ b/fs/nfs/cache_lib.c @@ -XXX,XX +XXX,XX @@ * * Copyright (c) 2009 Trond Myklebust <Trond.Myklebust@netapp.com> */ -#include <linux/kmod.h> +#include <linux/umh.h> #include <linux/module.h> #include <linux/moduleparam.h> #include <linux/mount.h> diff --git a/fs/nfsd/nfs4layouts.c b/fs/nfsd/nfs4layouts.c index XXXXXXX..XXXXXXX 100644 --- a/fs/nfsd/nfs4layouts.c +++ b/fs/nfsd/nfs4layouts.c @@ -XXX,XX +XXX,XX @@ * Copyright (c) 2014 Christoph Hellwig. */ #include <linux/exportfs_block.h> -#include <linux/kmod.h> +#include <linux/umh.h> #include <linux/file.h> #include <linux/jhash.h> #include <linux/sched.h> diff --git a/fs/nfsd/nfs4recover.c b/fs/nfsd/nfs4recover.c index XXXXXXX..XXXXXXX 100644 --- a/fs/nfsd/nfs4recover.c +++ b/fs/nfsd/nfs4recover.c @@ -XXX,XX +XXX,XX @@ #include <linux/fs.h> #include <linux/hex.h> #include <linux/module.h> +#include <linux/umh.h> #include <net/net_namespace.h> #include <linux/sunrpc/rpc_pipe_fs.h> #include <linux/sunrpc/clnt.h> diff --git a/fs/ocfs2/stackglue.c b/fs/ocfs2/stackglue.c index XXXXXXX..XXXXXXX 100644 --- a/fs/ocfs2/stackglue.c +++ b/fs/ocfs2/stackglue.c @@ -XXX,XX +XXX,XX @@ #include <linux/kobject.h> #include <linux/sysfs.h> #include <linux/sysctl.h> +#include <linux/umh.h> #include "ocfs2_fs.h" diff --git a/kernel/cgroup/cgroup-v1.c b/kernel/cgroup/cgroup-v1.c index XXXXXXX..XXXXXXX 100644 --- a/kernel/cgroup/cgroup-v1.c +++ b/kernel/cgroup/cgroup-v1.c @@ -XXX,XX +XXX,XX @@ #include <linux/pid_namespace.h> #include <linux/cgroupstats.h> #include <linux/fs_parser.h> +#include <linux/umh.h> #include <trace/events/cgroup.h> diff --git a/kernel/module/kmod.c b/kernel/module/kmod.c index XXXXXXX..XXXXXXX 100644 --- a/kernel/module/kmod.c +++ b/kernel/module/kmod.c @@ -XXX,XX +XXX,XX @@ #include <linux/ptrace.h> #include <linux/async.h> #include <linux/uaccess.h> +#include <linux/umh.h> #include <trace/events/module.h> #include "internal.h" diff --git a/kernel/power/process.c b/kernel/power/process.c index XXXXXXX..XXXXXXX 100644 --- a/kernel/power/process.c +++ b/kernel/power/process.c @@ -XXX,XX +XXX,XX @@ #include <linux/freezer.h> #include <linux/delay.h> #include <linux/workqueue.h> -#include <linux/kmod.h> +#include <linux/umh.h> #include <trace/events/power.h> #include <linux/cpuset.h> diff --git a/kernel/reboot.c b/kernel/reboot.c index XXXXXXX..XXXXXXX 100644 --- a/kernel/reboot.c +++ b/kernel/reboot.c @@ -XXX,XX +XXX,XX @@ #include <linux/ctype.h> #include <linux/export.h> #include <linux/kexec.h> -#include <linux/kmod.h> #include <linux/kmsg_dump.h> #include <linux/reboot.h> #include <linux/suspend.h> #include <linux/syscalls.h> #include <linux/syscore_ops.h> #include <linux/uaccess.h> +#include <linux/umh.h> /* * this indicates whether you can reboot with ctrl-alt-del: the default is yes diff --git a/kernel/umh.c b/kernel/umh.c index XXXXXXX..XXXXXXX 100644 --- a/kernel/umh.c +++ b/kernel/umh.c @@ -XXX,XX +XXX,XX @@ #include <linux/binfmts.h> #include <linux/syscalls.h> #include <linux/unistd.h> -#include <linux/kmod.h> +#include <linux/umh.h> #include <linux/slab.h> #include <linux/completion.h> #include <linux/cred.h> diff --git a/lib/kobject_uevent.c b/lib/kobject_uevent.c index XXXXXXX..XXXXXXX 100644 --- a/lib/kobject_uevent.c +++ b/lib/kobject_uevent.c @@ -XXX,XX +XXX,XX @@ #include <linux/string.h> #include <linux/kobject.h> #include <linux/export.h> -#include <linux/kmod.h> +#include <linux/umh.h> #include <linux/slab.h> #include <linux/socket.h> #include <linux/skbuff.h> diff --git a/net/bridge/br_stp_if.c b/net/bridge/br_stp_if.c index XXXXXXX..XXXXXXX 100644 --- a/net/bridge/br_stp_if.c +++ b/net/bridge/br_stp_if.c @@ -XXX,XX +XXX,XX @@ */ #include <linux/kernel.h> -#include <linux/kmod.h> +#include <linux/umh.h> #include <linux/etherdevice.h> #include <linux/rtnetlink.h> #include <net/switchdev.h> diff --git a/security/keys/request_key.c b/security/keys/request_key.c index XXXXXXX..XXXXXXX 100644 --- a/security/keys/request_key.c +++ b/security/keys/request_key.c @@ -XXX,XX +XXX,XX @@ #include <linux/export.h> #include <linux/sched.h> -#include <linux/kmod.h> +#include <linux/umh.h> #include <linux/err.h> #include <linux/keyctl.h> #include <linux/slab.h> diff --git a/security/tomoyo/common.h b/security/tomoyo/common.h index XXXXXXX..XXXXXXX 100644 --- a/security/tomoyo/common.h +++ b/security/tomoyo/common.h @@ -XXX,XX +XXX,XX @@ #include <linux/string.h> #include <linux/mm.h> #include <linux/file.h> -#include <linux/kmod.h> +#include <linux/umh.h> #include <linux/fs.h> #include <linux/sched.h> #include <linux/namei.h> -- 2.54.0
Including linux/kmod.h alone results in 1.5 MB of preprocessed output, even though it provides only a few functions and macros. The header currently depends on: * __printf() -> linux/compiler_attributes.h, * ENOSYS -> linux/errno.h, * bool -> linux/types.h. Include only these files, reducing the preprocessed output to 10 kB. Signed-off-by: Petr Pavlu <petr.pavlu@suse.com> --- include/linux/kmod.h | 12 ++---------- 1 file changed, 2 insertions(+), 10 deletions(-) diff --git a/include/linux/kmod.h b/include/linux/kmod.h index XXXXXXX..XXXXXXX 100644 --- a/include/linux/kmod.h +++ b/include/linux/kmod.h @@ -XXX,XX +XXX,XX @@ #ifndef __LINUX_KMOD_H__ #define __LINUX_KMOD_H__ -/* - * include/linux/kmod.h - */ - -#include <linux/umh.h> -#include <linux/gfp.h> -#include <linux/stddef.h> +#include <linux/compiler_attributes.h> #include <linux/errno.h> -#include <linux/compiler.h> -#include <linux/workqueue.h> -#include <linux/sysctl.h> +#include <linux/types.h> #ifdef CONFIG_MODULES /* modprobe exit status on success, -ve on error. Return value -- 2.54.0
The usermode helper declarations were previously provided by linux/kmod.h but commit c1f3fa2a4fde ("kmod: split off umh headers into its own file") moved them to linux/umh.h in 2017. Add explicit includes of linux/umh.h to files that use usermode helpers and remove linux/kmod.h where it is no longer needed. Also add a missing include of linux/sysctl.h to kernel/time/jiffies.c. Finally, clean up linux/kmod.h so that it includes only the headers that it actually requires, importantly removing the compat linux/umh.h include. This cleanup is motivated by trying to reduce the preprocessed size of linux/module.h, which includes linux/kmod.h. The linux/module.h header is included by every *.mod.c file to provide `struct module` and other related definitions, so it should avoid pulling in unnecessary dependencies. Note that this series doesn't immediately improve the situation, since most of the files included by linux/kmod.h are, for now, also included by linux/module.h through other paths. Apologies for the wide distribution. Acked-bys are appreciated. Changes in v2: - Remove the linux/kmod.h include from kernel/cgroup/cgroup-v1.c. - Add a missing include of linux/sysctl.h to kernel/time/jiffies.c. - Link to v1: https://lore.kernel.org/linux-modules/20260708154510.6794-1-petr.pavlu@suse.com/ Petr Pavlu (3): umh, treewide: Explicitly include linux/umh.h where needed time/jiffies: Include linux/sysctl.h for proc_int_u2k_conv_uop(), ... module: Bring includes in linux/kmod.h up to date arch/x86/kernel/cpu/mce/dev-mcelog.c | 2 +- drivers/block/drbd/drbd_nl.c | 1 + drivers/greybus/svc_watchdog.c | 1 + drivers/macintosh/windfarm_core.c | 1 + drivers/pnp/pnpbios/core.c | 2 +- drivers/video/fbdev/uvesafb.c | 1 + fs/coredump.c | 2 +- fs/nfs/cache_lib.c | 2 +- fs/nfsd/nfs4layouts.c | 2 +- fs/nfsd/nfs4recover.c | 1 + fs/ocfs2/stackglue.c | 1 + include/linux/kmod.h | 12 ++---------- kernel/cgroup/cgroup-v1.c | 2 +- kernel/module/kmod.c | 1 + kernel/power/process.c | 2 +- kernel/reboot.c | 2 +- kernel/time/jiffies.c | 1 + kernel/umh.c | 2 +- lib/kobject_uevent.c | 2 +- net/bridge/br_stp_if.c | 2 +- security/keys/request_key.c | 2 +- security/tomoyo/common.h | 2 +- 22 files changed, 23 insertions(+), 23 deletions(-) -- 2.54.0
The usermode helper declarations were previously provided by linux/kmod.h but commit c1f3fa2a4fde ("kmod: split off umh headers into its own file") moved them to linux/umh.h in 2017. Add explicit includes of linux/umh.h to files that use usermode helpers and remove linux/kmod.h where it is no longer needed. Signed-off-by: Petr Pavlu <petr.pavlu@suse.com> --- arch/x86/kernel/cpu/mce/dev-mcelog.c | 2 +- drivers/block/drbd/drbd_nl.c | 1 + drivers/greybus/svc_watchdog.c | 1 + drivers/macintosh/windfarm_core.c | 1 + drivers/pnp/pnpbios/core.c | 2 +- drivers/video/fbdev/uvesafb.c | 1 + fs/coredump.c | 2 +- fs/nfs/cache_lib.c | 2 +- fs/nfsd/nfs4layouts.c | 2 +- fs/nfsd/nfs4recover.c | 1 + fs/ocfs2/stackglue.c | 1 + kernel/cgroup/cgroup-v1.c | 2 +- kernel/module/kmod.c | 1 + kernel/power/process.c | 2 +- kernel/reboot.c | 2 +- kernel/umh.c | 2 +- lib/kobject_uevent.c | 2 +- net/bridge/br_stp_if.c | 2 +- security/keys/request_key.c | 2 +- security/tomoyo/common.h | 2 +- 20 files changed, 20 insertions(+), 13 deletions(-) diff --git a/arch/x86/kernel/cpu/mce/dev-mcelog.c b/arch/x86/kernel/cpu/mce/dev-mcelog.c index XXXXXXX..XXXXXXX 100644 --- a/arch/x86/kernel/cpu/mce/dev-mcelog.c +++ b/arch/x86/kernel/cpu/mce/dev-mcelog.c @@ -XXX,XX +XXX,XX @@ #include <linux/miscdevice.h> #include <linux/slab.h> -#include <linux/kmod.h> +#include <linux/umh.h> #include <linux/poll.h> #include "internal.h" diff --git a/drivers/block/drbd/drbd_nl.c b/drivers/block/drbd/drbd_nl.c index XXXXXXX..XXXXXXX 100644 --- a/drivers/block/drbd/drbd_nl.c +++ b/drivers/block/drbd/drbd_nl.c @@ -XXX,XX +XXX,XX @@ #define pr_fmt(fmt) KBUILD_MODNAME ": " fmt #include <linux/module.h> +#include <linux/umh.h> #include <linux/drbd.h> #include <linux/in.h> #include <linux/fs.h> diff --git a/drivers/greybus/svc_watchdog.c b/drivers/greybus/svc_watchdog.c index XXXXXXX..XXXXXXX 100644 --- a/drivers/greybus/svc_watchdog.c +++ b/drivers/greybus/svc_watchdog.c @@ -XXX,XX +XXX,XX @@ #include <linux/delay.h> #include <linux/suspend.h> +#include <linux/umh.h> #include <linux/workqueue.h> #include <linux/greybus.h> diff --git a/drivers/macintosh/windfarm_core.c b/drivers/macintosh/windfarm_core.c index XXXXXXX..XXXXXXX 100644 --- a/drivers/macintosh/windfarm_core.c +++ b/drivers/macintosh/windfarm_core.c @@ -XXX,XX +XXX,XX @@ #include <linux/platform_device.h> #include <linux/mutex.h> #include <linux/freezer.h> +#include <linux/umh.h> #include "windfarm.h" diff --git a/drivers/pnp/pnpbios/core.c b/drivers/pnp/pnpbios/core.c index XXXXXXX..XXXXXXX 100644 --- a/drivers/pnp/pnpbios/core.c +++ b/drivers/pnp/pnpbios/core.c @@ -XXX,XX +XXX,XX @@ #include <linux/delay.h> #include <linux/acpi.h> #include <linux/freezer.h> -#include <linux/kmod.h> +#include <linux/umh.h> #include <linux/kthread.h> #include <asm/page.h> diff --git a/drivers/video/fbdev/uvesafb.c b/drivers/video/fbdev/uvesafb.c index XXXXXXX..XXXXXXX 100644 --- a/drivers/video/fbdev/uvesafb.c +++ b/drivers/video/fbdev/uvesafb.c @@ -XXX,XX +XXX,XX @@ #include <linux/io.h> #include <linux/mutex.h> #include <linux/slab.h> +#include <linux/umh.h> #include <video/edid.h> #include <video/uvesafb.h> #ifdef CONFIG_X86 diff --git a/fs/coredump.c b/fs/coredump.c index XXXXXXX..XXXXXXX 100644 --- a/fs/coredump.c +++ b/fs/coredump.c @@ -XXX,XX +XXX,XX @@ #include <linux/tsacct_kern.h> #include <linux/cn_proc.h> #include <linux/audit.h> -#include <linux/kmod.h> +#include <linux/umh.h> #include <linux/fsnotify.h> #include <linux/fs_struct.h> #include <linux/pipe_fs_i.h> diff --git a/fs/nfs/cache_lib.c b/fs/nfs/cache_lib.c index XXXXXXX..XXXXXXX 100644 --- a/fs/nfs/cache_lib.c +++ b/fs/nfs/cache_lib.c @@ -XXX,XX +XXX,XX @@ * * Copyright (c) 2009 Trond Myklebust <Trond.Myklebust@netapp.com> */ -#include <linux/kmod.h> +#include <linux/umh.h> #include <linux/module.h> #include <linux/moduleparam.h> #include <linux/mount.h> diff --git a/fs/nfsd/nfs4layouts.c b/fs/nfsd/nfs4layouts.c index XXXXXXX..XXXXXXX 100644 --- a/fs/nfsd/nfs4layouts.c +++ b/fs/nfsd/nfs4layouts.c @@ -XXX,XX +XXX,XX @@ * Copyright (c) 2014 Christoph Hellwig. */ #include <linux/exportfs_block.h> -#include <linux/kmod.h> +#include <linux/umh.h> #include <linux/file.h> #include <linux/jhash.h> #include <linux/sched.h> diff --git a/fs/nfsd/nfs4recover.c b/fs/nfsd/nfs4recover.c index XXXXXXX..XXXXXXX 100644 --- a/fs/nfsd/nfs4recover.c +++ b/fs/nfsd/nfs4recover.c @@ -XXX,XX +XXX,XX @@ #include <linux/fs.h> #include <linux/hex.h> #include <linux/module.h> +#include <linux/umh.h> #include <net/net_namespace.h> #include <linux/sunrpc/rpc_pipe_fs.h> #include <linux/sunrpc/clnt.h> diff --git a/fs/ocfs2/stackglue.c b/fs/ocfs2/stackglue.c index XXXXXXX..XXXXXXX 100644 --- a/fs/ocfs2/stackglue.c +++ b/fs/ocfs2/stackglue.c @@ -XXX,XX +XXX,XX @@ #include <linux/kobject.h> #include <linux/sysfs.h> #include <linux/sysctl.h> +#include <linux/umh.h> #include "ocfs2_fs.h" diff --git a/kernel/cgroup/cgroup-v1.c b/kernel/cgroup/cgroup-v1.c index XXXXXXX..XXXXXXX 100644 --- a/kernel/cgroup/cgroup-v1.c +++ b/kernel/cgroup/cgroup-v1.c @@ -XXX,XX +XXX,XX @@ #include "cgroup-internal.h" #include <linux/ctype.h> -#include <linux/kmod.h> +#include <linux/umh.h> #include <linux/sort.h> #include <linux/delay.h> #include <linux/mm.h> diff --git a/kernel/module/kmod.c b/kernel/module/kmod.c index XXXXXXX..XXXXXXX 100644 --- a/kernel/module/kmod.c +++ b/kernel/module/kmod.c @@ -XXX,XX +XXX,XX @@ #include <linux/ptrace.h> #include <linux/async.h> #include <linux/uaccess.h> +#include <linux/umh.h> #include <trace/events/module.h> #include "internal.h" diff --git a/kernel/power/process.c b/kernel/power/process.c index XXXXXXX..XXXXXXX 100644 --- a/kernel/power/process.c +++ b/kernel/power/process.c @@ -XXX,XX +XXX,XX @@ #include <linux/freezer.h> #include <linux/delay.h> #include <linux/workqueue.h> -#include <linux/kmod.h> +#include <linux/umh.h> #include <trace/events/power.h> #include <linux/cpuset.h> diff --git a/kernel/reboot.c b/kernel/reboot.c index XXXXXXX..XXXXXXX 100644 --- a/kernel/reboot.c +++ b/kernel/reboot.c @@ -XXX,XX +XXX,XX @@ #include <linux/ctype.h> #include <linux/export.h> #include <linux/kexec.h> -#include <linux/kmod.h> #include <linux/kmsg_dump.h> #include <linux/reboot.h> #include <linux/suspend.h> #include <linux/syscalls.h> #include <linux/syscore_ops.h> #include <linux/uaccess.h> +#include <linux/umh.h> /* * this indicates whether you can reboot with ctrl-alt-del: the default is yes diff --git a/kernel/umh.c b/kernel/umh.c index XXXXXXX..XXXXXXX 100644 --- a/kernel/umh.c +++ b/kernel/umh.c @@ -XXX,XX +XXX,XX @@ #include <linux/binfmts.h> #include <linux/syscalls.h> #include <linux/unistd.h> -#include <linux/kmod.h> +#include <linux/umh.h> #include <linux/slab.h> #include <linux/completion.h> #include <linux/cred.h> diff --git a/lib/kobject_uevent.c b/lib/kobject_uevent.c index XXXXXXX..XXXXXXX 100644 --- a/lib/kobject_uevent.c +++ b/lib/kobject_uevent.c @@ -XXX,XX +XXX,XX @@ #include <linux/string.h> #include <linux/kobject.h> #include <linux/export.h> -#include <linux/kmod.h> +#include <linux/umh.h> #include <linux/slab.h> #include <linux/socket.h> #include <linux/skbuff.h> diff --git a/net/bridge/br_stp_if.c b/net/bridge/br_stp_if.c index XXXXXXX..XXXXXXX 100644 --- a/net/bridge/br_stp_if.c +++ b/net/bridge/br_stp_if.c @@ -XXX,XX +XXX,XX @@ */ #include <linux/kernel.h> -#include <linux/kmod.h> +#include <linux/umh.h> #include <linux/etherdevice.h> #include <linux/rtnetlink.h> #include <net/switchdev.h> diff --git a/security/keys/request_key.c b/security/keys/request_key.c index XXXXXXX..XXXXXXX 100644 --- a/security/keys/request_key.c +++ b/security/keys/request_key.c @@ -XXX,XX +XXX,XX @@ #include <linux/export.h> #include <linux/sched.h> -#include <linux/kmod.h> +#include <linux/umh.h> #include <linux/err.h> #include <linux/keyctl.h> #include <linux/slab.h> diff --git a/security/tomoyo/common.h b/security/tomoyo/common.h index XXXXXXX..XXXXXXX 100644 --- a/security/tomoyo/common.h +++ b/security/tomoyo/common.h @@ -XXX,XX +XXX,XX @@ #include <linux/string.h> #include <linux/mm.h> #include <linux/file.h> -#include <linux/kmod.h> +#include <linux/umh.h> #include <linux/fs.h> #include <linux/sched.h> #include <linux/namei.h> -- 2.54.0
The kernel/time/jiffies.c file uses proc_int_u2k_conv_uop(), proc_int_k2u_conv_kop(), proc_int_conv(), proc_dointvec_conv() and proc_doulongvec_minmax_conv(), which are declared in linux/sysctl.h. It currently relies on this header being included indirectly through linux/module.h -> linux/kmod.h. Add the missing include in preparation for removing the linux/sysctl.h include from linux/kmod.h. Signed-off-by: Petr Pavlu <petr.pavlu@suse.com> --- kernel/time/jiffies.c | 1 + 1 file changed, 1 insertion(+) diff --git a/kernel/time/jiffies.c b/kernel/time/jiffies.c index XXXXXXX..XXXXXXX 100644 --- a/kernel/time/jiffies.c +++ b/kernel/time/jiffies.c @@ -XXX,XX +XXX,XX @@ #include <linux/jiffies.h> #include <linux/module.h> #include <linux/init.h> +#include <linux/sysctl.h> #include "timekeeping.h" #include "tick-internal.h" -- 2.54.0
Including linux/kmod.h alone results in 1.5 MB of preprocessed output, even though it provides only a few functions and macros. The header currently depends on: * __printf() -> linux/compiler_attributes.h, * ENOSYS -> linux/errno.h, * bool -> linux/types.h. Include only these files, reducing the preprocessed output to 10 kB. Signed-off-by: Petr Pavlu <petr.pavlu@suse.com> Reviewed-by: Aaron Tomlin <atomlin@atomlin.com> --- include/linux/kmod.h | 12 ++---------- 1 file changed, 2 insertions(+), 10 deletions(-) diff --git a/include/linux/kmod.h b/include/linux/kmod.h index XXXXXXX..XXXXXXX 100644 --- a/include/linux/kmod.h +++ b/include/linux/kmod.h @@ -XXX,XX +XXX,XX @@ #ifndef __LINUX_KMOD_H__ #define __LINUX_KMOD_H__ -/* - * include/linux/kmod.h - */ - -#include <linux/umh.h> -#include <linux/gfp.h> -#include <linux/stddef.h> +#include <linux/compiler_attributes.h> #include <linux/errno.h> -#include <linux/compiler.h> -#include <linux/workqueue.h> -#include <linux/sysctl.h> +#include <linux/types.h> #ifdef CONFIG_MODULES /* modprobe exit status on success, -ve on error. Return value -- 2.54.0