diff options
author | Ingo Molnar <mingo@kernel.org> | 2022-02-18 12:16:25 +0100 |
---|---|---|
committer | Ingo Molnar <mingo@kernel.org> | 2022-03-15 12:57:43 +0100 |
commit | 1442fbb8b3fb1521aa501c2c14cf41199c60d2a8 (patch) | |
tree | d8d58023f72b35e0ee33c0b58036ea8b357ca792 | |
parent | c2af92668863ead4d1c74fb681fb04b02afa448a (diff) | |
download | tip-1442fbb8b3fb1521aa501c2c14cf41199c60d2a8.tar.gz |
headers/deps: Introduce the CONFIG_FAST_HEADERS=y config option
Temporary debug aid only, allows the old dependencies to be
restored, in case there's a build failure with the new header
dependencies.
NOTE: not intended for merging!
NOT-Signed-off-by: Ingo Molnar <mingo@kernel.org>
78 files changed, 587 insertions, 8 deletions
diff --git a/arch/x86/include/asm/fpu/api.h b/arch/x86/include/asm/fpu/api.h index 2acf18704c2cd5..089dca9d2780cf 100644 --- a/arch/x86/include/asm/fpu/api.h +++ b/arch/x86/include/asm/fpu/api.h @@ -168,3 +168,14 @@ struct task_struct; extern long fpu_xstate_prctl(struct task_struct *tsk, int option, unsigned long arg2); #endif /* _ASM_X86_FPU_API_H */ + + +#ifndef CONFIG_FAST_HEADERS +#include <asm/mpspec.h> +#include <asm/nospec-branch.h> +#include <asm/pkru.h> +#include <asm/math_emu.h> +#include <asm/fsgsbase.h> +#include <asm/vdso.h> +#include <asm/unwind_hints.h> +#endif diff --git a/arch/x86/include/asm/local.h b/arch/x86/include/asm/local.h index bde5cf762eabb3..eb902afa388484 100644 --- a/arch/x86/include/asm/local.h +++ b/arch/x86/include/asm/local.h @@ -5,3 +5,6 @@ #include <asm/local_types.h> #endif /* _ASM_X86_LOCAL_H */ +#ifndef CONFIG_FAST_HEADERS +# include <asm/local_api.h> +#endif diff --git a/arch/x86/include/asm/page.h b/arch/x86/include/asm/page.h index 4d5810c8fab74f..fe6a6344ff4521 100644 --- a/arch/x86/include/asm/page.h +++ b/arch/x86/include/asm/page.h @@ -71,6 +71,10 @@ static inline void copy_user_page(void *to, void *from, unsigned long vaddr, extern bool __virt_addr_valid(unsigned long kaddr); #define virt_addr_valid(kaddr) __virt_addr_valid((unsigned long) (kaddr)) +#ifndef CONFIG_FAST_HEADERS +# include <linux/mem_encrypt.h> +#endif + #endif /* __ASSEMBLY__ */ #include <asm-generic/memory_model.h> diff --git a/arch/x86/include/asm/pgtable.h b/arch/x86/include/asm/pgtable.h index 2823086630c4a5..0f8e812eb7e7f9 100644 --- a/arch/x86/include/asm/pgtable.h +++ b/arch/x86/include/asm/pgtable.h @@ -1332,3 +1332,22 @@ bool arch_is_platform_page(u64 paddr); #endif #endif /* _ASM_X86_PGTABLE_H */ + +#ifndef CONFIG_FAST_HEADERS +# include <asm/ptrace.h> +# include <asm/tsc.h> +# include <asm/fpu/api.h> +# include <linux/cache.h> +# include <linux/seqlock.h> +# include <linux/rcupdate.h> +# include <linux/mutex.h> +# include <linux/jiffies.h> +# include <linux/notifier.h> +# include <linux/llist.h> +# include <linux/srcu.h> +# include <linux/smp.h> +# include <linux/personality.h> +# include <linux/restart_block.h> +# include <linux/rwsem.h> +# include <linux/timex.h> +#endif diff --git a/arch/x86/include/asm/processor.h b/arch/x86/include/asm/processor.h index 4e72644af53d8a..2e6b2f7c3cd70d 100644 --- a/arch/x86/include/asm/processor.h +++ b/arch/x86/include/asm/processor.h @@ -5,3 +5,43 @@ #include <asm/processor_types.h> #endif /* _ASM_X86_PROCESSOR_H */ + +#ifndef CONFIG_FAST_HEADERS +# include <asm/cpufeatures.h> +# include <asm/current.h> +# include <asm/desc_defs.h> +# include <asm/fpu/types.h> +# include <asm/ist.h> +# include <asm/math_emu.h> +# include <asm/msr.h> +# include <asm/nops.h> +# include <asm/nospec-branch.h> +# include <asm/page.h> +# include <asm/paravirt.h> +# include <asm/percpu.h> +# include <asm/pgtable_types.h> +# include <asm/processor_api.h> +# include <asm/processor-flags.h> +# include <asm/proto.h> +# include <asm/ptrace.h> +# include <asm/segment.h> +# include <asm/special_insns.h> +# include <asm/types.h> +# include <asm/unwind_hints.h> +# include <asm/vdso/processor.h> +# include <asm/vmxfeatures.h> +# include <linux/apm_bios.h> +# include <linux/cache.h> +# include <linux/cc_platform.h> +# include <linux/edd.h> +# include <linux/err.h> +# include <linux/init.h> +# include <linux/irqflags.h> +# include <linux/math64.h> +# include <linux/mem_encrypt.h> +# include <linux/minmax.h> +# include <linux/personality.h> +# include <linux/screen_info.h> +# include <linux/threads.h> +# include <uapi/asm/sigcontext.h> +#endif diff --git a/arch/x86/include/asm/topology.h b/arch/x86/include/asm/topology.h index c519561fce6644..48e37425420d56 100644 --- a/arch/x86/include/asm/topology.h +++ b/arch/x86/include/asm/topology.h @@ -224,3 +224,7 @@ void init_freq_invariance_cppc(void); #endif #endif /* _ASM_X86_TOPOLOGY_H */ + +#ifndef CONFIG_FAST_HEADERS +# include <asm/mpspec.h> +#endif diff --git a/include/linux/bvec.h b/include/linux/bvec.h index af7c8c3e910934..045086d0785cdd 100644 --- a/include/linux/bvec.h +++ b/include/linux/bvec.h @@ -10,3 +10,7 @@ #include <linux/bvec_types.h> #endif /* __LINUX_BVEC_H */ + +#ifndef CONFIG_FAST_HEADERS +# include <linux/bvec_api.h> +#endif diff --git a/include/linux/cgroup.h b/include/linux/cgroup.h index 28c2194d47364d..e2373e0cd9384c 100644 --- a/include/linux/cgroup.h +++ b/include/linux/cgroup.h @@ -5,3 +5,7 @@ #include <linux/cgroup_types.h> #endif /* _LINUX_CGROUP_H */ + +#ifndef CONFIG_FAST_HEADERS +# include <linux/cgroup_api.h> +#endif diff --git a/include/linux/cpumask.h b/include/linux/cpumask.h index 4f760aa32e608b..43c3c7f5c94953 100644 --- a/include/linux/cpumask.h +++ b/include/linux/cpumask.h @@ -5,3 +5,7 @@ #include <linux/cpumask_types.h> #endif /* __LINUX_CPUMASK_H */ + +#ifndef CONFIG_FAST_HEADERS +# include <linux/cpumask_api.h> +#endif diff --git a/include/linux/device.h b/include/linux/device.h index 3a95cd321e44e2..f4427dcd3c2013 100644 --- a/include/linux/device.h +++ b/include/linux/device.h @@ -5,3 +5,22 @@ #include <linux/device_types.h> #endif /* _DEVICE_H_ */ + +#ifndef CONFIG_FAST_HEADERS +# include <linux/device_api.h> +# include <linux/module.h> +# include <linux/fwnode.h> +# include <linux/energy_model.h> +# include <linux/sched/topology.h> +# include <linux/error-injection.h> +# include <linux/memory_hotplug.h> +# include <linux/mmzone.h> +# include <linux/notifier.h> +# include <linux/rbtree_latch.h> +# include <linux/rwsem.h> +# include <linux/sched/cpufreq.h> +# include <linux/srcu.h> +# include <linux/sysfs.h> +# include <linux/uprobes.h> +# include <linux/xarray.h> +#endif diff --git a/include/linux/dma-mapping.h b/include/linux/dma-mapping.h index 908501bcd27a7a..a56795d6a47818 100644 --- a/include/linux/dma-mapping.h +++ b/include/linux/dma-mapping.h @@ -3,8 +3,8 @@ #define _LINUX_DMA_MAPPING_H #include <linux/sizes.h> -#include <linux/device_types.h> -#include <linux/gfp_types.h> +#include <linux/device.h> +#include <linux/gfp.h> #include <linux/minmax.h> #include <linux/limits.h> #include <linux/err.h> @@ -583,3 +583,8 @@ static inline int dma_mmap_wc(struct device *dev, #endif #endif /* _LINUX_DMA_MAPPING_H */ + +#ifndef CONFIG_FAST_HEADERS +# include <linux/device.h> +# include <linux/mem_encrypt.h> +#endif diff --git a/include/linux/dynamic_queue_limits.h b/include/linux/dynamic_queue_limits.h index d4b906559ea6c0..9bb98a00e72a2a 100644 --- a/include/linux/dynamic_queue_limits.h +++ b/include/linux/dynamic_queue_limits.h @@ -5,3 +5,7 @@ #include <linux/dynamic_queue_limits_types.h> #endif /* _LINUX_DQL_H */ + +#ifndef CONFIG_FAST_HEADERS +# include <linux/dynamic_queue_limits_api.h> +#endif diff --git a/include/linux/etherdevice.h b/include/linux/etherdevice.h index 3c2799f90169dd..807667d7594c9d 100644 --- a/include/linux/etherdevice.h +++ b/include/linux/etherdevice.h @@ -5,3 +5,7 @@ #include <linux/etherdevice_types.h> #endif /* _LINUX_ETHERDEVICE_H */ + +#ifndef CONFIG_FAST_HEADERS +# include <linux/etherdevice_api.h> +#endif diff --git a/include/linux/filter.h b/include/linux/filter.h index d11bbc639e7526..9dafc9a6a2ff38 100644 --- a/include/linux/filter.h +++ b/include/linux/filter.h @@ -8,3 +8,7 @@ #include <linux/filter_types.h> #endif /* __LINUX_FILTER_H__ */ + +#ifndef CONFIG_FAST_HEADERS +# include <linux/filter_api.h> +#endif diff --git a/include/linux/fs.h b/include/linux/fs.h index dcaa486ec838e7..c42612bee2d15e 100644 --- a/include/linux/fs.h +++ b/include/linux/fs.h @@ -5,3 +5,39 @@ #include <linux/fs_types.h> #endif /* _LINUX_FS_H */ + +#ifndef CONFIG_FAST_HEADERS +# include <linux/fs_api.h> +# include <linux/sched.h> +# include <linux/rcuwait.h> +# include <linux/sched/jobctl.h> +# include <linux/sched/signal.h> +# include <linux/sched/rt.h> +# include <linux/sched/task.h> +# include <linux/sched/user.h> +# include <linux/bit_spinlock.h> +# include <linux/delayed_call.h> +# include <linux/hash.h> +# include <linux/iocontext.h> +# include <linux/ioprio.h> +# include <linux/list_bl.h> +# include <linux/list_lru.h> +# include <linux/local_lock.h> +# include <linux/memory_hotplug.h> +# include <linux/mmzone.h> +# include <linux/notifier.h> +# include <linux/quota.h> +# include <linux/radix-tree.h> +# include <linux/rculist_bl.h> +# include <linux/rcu_sync.h> +# include <linux/seccomp.h> +# include <linux/semaphore.h> +# include <linux/shrinker.h> +# include <linux/srcu.h> +# include <linux/sysctl.h> +# include <linux/uuid.h> +# include <linux/wait_bit.h> +# include <linux/xarray.h> +# include <linux/dcache.h> +# include <linux/stringhash.h> +#endif diff --git a/include/linux/gfp.h b/include/linux/gfp.h index af925be9ba71e1..4702c82dddabad 100644 --- a/include/linux/gfp.h +++ b/include/linux/gfp.h @@ -5,3 +5,7 @@ #include <linux/gfp_types.h> #endif /* __LINUX_GFP_H */ + +#ifndef CONFIG_FAST_HEADERS +# include <linux/gfp_api.h> +#endif diff --git a/include/linux/hardirq.h b/include/linux/hardirq.h index ef2a5b0e47df6a..7a708a7bb13d10 100644 --- a/include/linux/hardirq.h +++ b/include/linux/hardirq.h @@ -159,3 +159,8 @@ extern void rcu_nmi_exit(void); } while (0) #endif /* LINUX_HARDIRQ_H */ + +#ifndef CONFIG_FAST_HEADERS +# include <linux/vtime.h> +# include <linux/siphash.h> +#endif diff --git a/include/linux/hashtable.h b/include/linux/hashtable.h index eb2de56fbef99b..b0c38c4e14c93a 100644 --- a/include/linux/hashtable.h +++ b/include/linux/hashtable.h @@ -5,3 +5,7 @@ #include <linux/hashtable_types.h> #endif + +#ifndef CONFIG_FAST_HEADERS +# include <linux/hashtable_api.h> +#endif diff --git a/include/linux/highmem.h b/include/linux/highmem.h index f9780db178ef5b..5dfc735c599c51 100644 --- a/include/linux/highmem.h +++ b/include/linux/highmem.h @@ -152,3 +152,8 @@ void *kmap_atomic(struct page *page); */ #endif /* _LINUX_HIGHMEM_H */ + +#ifndef CONFIG_FAST_HEADERS +# include <linux/hardirq.h> +# include <linux/cacheflush.h> +#endif diff --git a/include/linux/hrtimer.h b/include/linux/hrtimer.h index 6e1e1f756466e6..0b82004db45cc6 100644 --- a/include/linux/hrtimer.h +++ b/include/linux/hrtimer.h @@ -5,3 +5,7 @@ #include <linux/hrtimer_types.h> #endif /* __LINUX_HRTIMER_H */ + +#ifndef CONFIG_FAST_HEADERS +# include <linux/hrtimer_api.h> +#endif diff --git a/include/linux/idr.h b/include/linux/idr.h index f405db422dd3a9..d17f26787baa6b 100644 --- a/include/linux/idr.h +++ b/include/linux/idr.h @@ -5,3 +5,7 @@ #include <linux/idr_types.h> #endif /* __LINUX_IDR_H */ + +#ifndef CONFIG_FAST_HEADERS +# include <linux/idr_api.h> +#endif diff --git a/include/linux/if_vlan.h b/include/linux/if_vlan.h index 5519834c232ff1..c7f852880fdb69 100644 --- a/include/linux/if_vlan.h +++ b/include/linux/if_vlan.h @@ -5,3 +5,7 @@ #include <linux/if_vlan_types.h> #endif /* !(_LINUX_IF_VLAN_H_) */ + +#ifndef CONFIG_FAST_HEADERS +# include <linux/if_vlan_api.h> +#endif diff --git a/include/linux/kobject.h b/include/linux/kobject.h index 20eafe9f682b7f..f419ced9213c2e 100644 --- a/include/linux/kobject.h +++ b/include/linux/kobject.h @@ -5,3 +5,7 @@ #include <linux/kobject_types.h> #endif /* _KOBJECT_H_ */ + +#ifndef CONFIG_FAST_HEADERS +# include <linux/kobject_api.h> +#endif diff --git a/include/linux/kref.h b/include/linux/kref.h index a2ea825f01bcf0..c38ed6f2ea7195 100644 --- a/include/linux/kref.h +++ b/include/linux/kref.h @@ -5,3 +5,7 @@ #include <linux/kref_types.h> #endif /* __LINUX_KREF_H */ + +#ifndef CONFIG_FAST_HEADERS +# include <linux/kref_api.h> +#endif diff --git a/include/linux/ktime.h b/include/linux/ktime.h index 20bf8cefad2cc3..ed99be42d64856 100644 --- a/include/linux/ktime.h +++ b/include/linux/ktime.h @@ -5,3 +5,7 @@ #include <linux/ktime_types.h> #endif /* __LINUX_KTIME_H */ + +#ifndef CONFIG_FAST_HEADERS +# include <linux/ktime_api.h> +#endif diff --git a/include/linux/list_bl.h b/include/linux/list_bl.h index 4a5a75980815c5..37b04e11e9d681 100644 --- a/include/linux/list_bl.h +++ b/include/linux/list_bl.h @@ -5,3 +5,7 @@ #include <linux/list_bl_types.h> #endif + +#ifndef CONFIG_FAST_HEADERS +# include <linux/list_bl_api.h> +#endif diff --git a/include/linux/list_lru.h b/include/linux/list_lru.h index d1d24bce020a2e..2b6a73e39044c4 100644 --- a/include/linux/list_lru.h +++ b/include/linux/list_lru.h @@ -5,3 +5,7 @@ #include <linux/list_lru_types.h> #endif /* _LINUX_LIST_LRU_H */ + +#ifndef CONFIG_FAST_HEADERS +# include <linux/list_lru_api.h> +#endif diff --git a/include/linux/llist.h b/include/linux/llist.h index 4825b3715337bc..41508d7d761a91 100644 --- a/include/linux/llist.h +++ b/include/linux/llist.h @@ -5,3 +5,7 @@ #include <linux/llist_types.h> #endif /* LLIST_H */ + +#ifndef CONFIG_FAST_HEADERS +# include <linux/llist_api.h> +#endif diff --git a/include/linux/lockdep.h b/include/linux/lockdep.h index 8f76c47aa1eea9..f3af046156d69c 100644 --- a/include/linux/lockdep.h +++ b/include/linux/lockdep.h @@ -13,3 +13,7 @@ #include <linux/lockdep_types.h> #endif /* __LINUX_LOCKDEP_H */ + +#ifndef CONFIG_FAST_HEADERS +# include <linux/lockdep_api.h> +#endif diff --git a/include/linux/mm.h b/include/linux/mm.h index 6e9d83afdc8dc2..72abc520e70c7a 100644 --- a/include/linux/mm.h +++ b/include/linux/mm.h @@ -5,3 +5,18 @@ #include <linux/mm_types.h> #endif /* _LINUX_MM_H */ + +#ifndef CONFIG_FAST_HEADERS +# include <linux/mm_api.h> +# include <linux/fs.h> +# include <linux/sched.h> +# include <linux/mmzone_api.h> +# include <linux/rcuwait.h> +# include <linux/huge_mm.h> +# include <linux/pgtable.h> +# include <linux/pgtable_api.h> +# include <linux/memory_hotplug.h> +# include <linux/memremap.h> +# include <linux/vmstat.h> +# include <linux/mmap_lock.h> +#endif diff --git a/include/linux/mmzone.h b/include/linux/mmzone.h index 855794c582c30d..0ad1aa07745563 100644 --- a/include/linux/mmzone.h +++ b/include/linux/mmzone.h @@ -5,3 +5,7 @@ #include <linux/mmzone_types.h> #endif /* _LINUX_MMZONE_H */ + +#ifndef CONFIG_FAST_HEADERS +# include <linux/mmzone_api.h> +#endif diff --git a/include/linux/mutex.h b/include/linux/mutex.h index 23da1eb38a6f28..ada7a3288d05fa 100644 --- a/include/linux/mutex.h +++ b/include/linux/mutex.h @@ -14,3 +14,7 @@ #include <linux/mutex_types.h> #endif /* __LINUX_MUTEX_H */ + +#ifndef CONFIG_FAST_HEADERS +# include <linux/mutex_api.h> +#endif diff --git a/include/linux/net.h b/include/linux/net.h index 96c13eb9277015..90f7bb5290d76c 100644 --- a/include/linux/net.h +++ b/include/linux/net.h @@ -335,3 +335,14 @@ u32 kernel_sock_ip_overhead(struct sock *sk); MODULE_ALIAS("net-pf-" __stringify(pf) "-proto-" __stringify(proto) \ name) #endif /* _LINUX_NET_H */ + +#ifndef CONFIG_FAST_HEADERS +# include <linux/stringify.h> +# include <linux/wait.h> +# include <linux/fcntl.h> +# include <linux/rcupdate.h> +# include <linux/once.h> +# include <linux/fs.h> +# include <linux/mm.h> +# include <linux/sockptr.h> +#endif diff --git a/include/linux/netdevice.h b/include/linux/netdevice.h index 244f6cfed51e29..f34930dad9299b 100644 --- a/include/linux/netdevice.h +++ b/include/linux/netdevice.h @@ -5,3 +5,7 @@ #include <linux/netdevice_types.h> #endif /* _LINUX_NETDEVICE_H */ + +#ifndef CONFIG_FAST_HEADERS +# include <linux/netdevice_api.h> +#endif diff --git a/include/linux/notifier.h b/include/linux/notifier.h index 4bb73f4d11ba38..a82a46b143286c 100644 --- a/include/linux/notifier.h +++ b/include/linux/notifier.h @@ -5,3 +5,7 @@ #include <linux/notifier_types.h> #endif /* _LINUX_NOTIFIER_H */ + +#ifndef CONFIG_FAST_HEADERS +# include <linux/notifier_api.h> +#endif diff --git a/include/linux/of.h b/include/linux/of.h index 33a170d5a145d3..258242ef1e74a8 100644 --- a/include/linux/of.h +++ b/include/linux/of.h @@ -5,3 +5,7 @@ #include <linux/of_types.h> #endif /* _LINUX_OF_H */ + +#ifndef CONFIG_FAST_HEADERS +# include <linux/of_api.h> +#endif diff --git a/include/linux/percpu_counter.h b/include/linux/percpu_counter.h index 813fe718087f1a..3972aadf9817e1 100644 --- a/include/linux/percpu_counter.h +++ b/include/linux/percpu_counter.h @@ -5,3 +5,7 @@ #include <linux/percpu_counter_types.h> #endif /* __LINUX_PERCPU_COUNTER_H */ + +#ifndef CONFIG_FAST_HEADERS +# include <linux/percpu_counter_api.h> +#endif diff --git a/include/linux/percpu_rwsem.h b/include/linux/percpu_rwsem.h index a5e186cc61dd47..df7891812c6759 100644 --- a/include/linux/percpu_rwsem.h +++ b/include/linux/percpu_rwsem.h @@ -5,3 +5,7 @@ #include <linux/percpu_rwsem_types.h> #endif + +#ifndef CONFIG_FAST_HEADERS +# include <linux/percpu_rwsem_api.h> +#endif diff --git a/include/linux/perf_event.h b/include/linux/perf_event.h index 1a6569f4488258..24d9d72dd18910 100644 --- a/include/linux/perf_event.h +++ b/include/linux/perf_event.h @@ -17,3 +17,7 @@ #include <linux/perf_event_types.h> #endif /* _LINUX_PERF_EVENT_H */ + +#ifndef CONFIG_FAST_HEADERS +# include <linux/perf_event_api.h> +#endif diff --git a/include/linux/ptrace.h b/include/linux/ptrace.h index baa8785b21ae86..1147158f16c070 100644 --- a/include/linux/ptrace.h +++ b/include/linux/ptrace.h @@ -5,3 +5,7 @@ #include <linux/ptrace_types.h> #endif /* _LINUX_PTRACE_H */ + +#ifndef CONFIG_FAST_HEADERS +# include <linux/ptrace_api.h> +#endif diff --git a/include/linux/rbtree.h b/include/linux/rbtree.h index 863821b4947de5..63d097b2f1d0fe 100644 --- a/include/linux/rbtree.h +++ b/include/linux/rbtree.h @@ -5,3 +5,7 @@ #include <linux/rbtree_types.h> #endif /* __LINUX_RBTREE_H */ + +#ifndef CONFIG_FAST_HEADERS +# include <linux/rbtree_api.h> +#endif diff --git a/include/linux/refcount.h b/include/linux/refcount.h index a366e2cf20ab92..a733e62b777f6d 100644 --- a/include/linux/refcount.h +++ b/include/linux/refcount.h @@ -5,3 +5,7 @@ #include <linux/refcount_types.h> #endif /* _LINUX_REFCOUNT_H */ + +#ifndef CONFIG_FAST_HEADERS +# include <linux/refcount_api.h> +#endif diff --git a/include/linux/resource_ext.h b/include/linux/resource_ext.h index 9adb230c3a4eb4..b9c765b14b4b90 100644 --- a/include/linux/resource_ext.h +++ b/include/linux/resource_ext.h @@ -9,3 +9,7 @@ #include <linux/resource_ext_types.h> #endif /* _LINUX_RESOURCE_EXT_H */ + +#ifndef CONFIG_FAST_HEADERS +# include <linux/resource_ext_api.h> +#endif diff --git a/include/linux/rwsem.h b/include/linux/rwsem.h index 56856ec54f505e..ee89a31c7eef61 100644 --- a/include/linux/rwsem.h +++ b/include/linux/rwsem.h @@ -5,3 +5,7 @@ #include <linux/rwsem_types.h> #endif /* _LINUX_RWSEM_H */ + +#ifndef CONFIG_FAST_HEADERS +# include <linux/rwsem_api.h> +#endif diff --git a/include/linux/scatterlist.h b/include/linux/scatterlist.h index a0e601550c5c6d..9d5a7fc2c8dc9e 100644 --- a/include/linux/scatterlist.h +++ b/include/linux/scatterlist.h @@ -5,3 +5,7 @@ #include <linux/scatterlist_types.h> #endif /* _LINUX_SCATTERLIST_H */ + +#ifndef CONFIG_FAST_HEADERS +# include <linux/scatterlist_api.h> +#endif diff --git a/include/linux/sched.h b/include/linux/sched.h index 61f46cd2eceba8..8b45921d80e313 100644 --- a/include/linux/sched.h +++ b/include/linux/sched.h @@ -1,3 +1,8 @@ +#ifndef CONFIG_FAST_HEADERS +# include <linux/thread_info.h> +# include <linux/seccomp.h> +#endif + /* SPDX-License-Identifier: GPL-2.0 */ #ifndef _LINUX_SCHED_H #define _LINUX_SCHED_H @@ -1088,3 +1093,39 @@ extern bool sched_task_on_rq(struct task_struct *p); extern unsigned long get_wchan(struct task_struct *p); #endif + +#ifndef CONFIG_FAST_HEADERS +# include <asm/processor.h> +# include <asm/ptrace.h> +# include <linux/sched/thread_info_api.h> +# include <linux/wait_api.h> +# include <linux/hrtimer_api.h> +# include <linux/rcupdate.h> +# include <linux/sched/cond_resched.h> +# include <linux/sched/thread.h> +# include <linux/sched/types.h> +# include <linux/debugobjects.h> +# include <linux/timex.h> +# include <linux/osq_lock.h> +# include <linux/alarmtimer.h> +# include <linux/ipc.h> +# include <linux/sem.h> +# include <linux/shm.h> +# include <linux/debug_locks.h> +# include <linux/apm_bios.h> +# include <linux/kcsan.h> +# include <linux/llist.h> +# include <linux/pid.h> +# include <linux/resource.h> +# include <linux/restart_block.h> +# include <linux/plist.h> +# include <linux/jiffies.h> +# include <linux/objtool.h> +# include <linux/personality.h> +# include <linux/posix-timers.h> +# include <linux/task_work.h> +# include <linux/numa.h> +# include <linux/nodemask.h> +# include <linux/smp.h> +# include <linux/mmdebug.h> +#endif diff --git a/include/linux/seccomp.h b/include/linux/seccomp.h index 8dfcb688b25310..77f22694f9a401 100644 --- a/include/linux/seccomp.h +++ b/include/linux/seccomp.h @@ -10,12 +10,16 @@ #ifdef CONFIG_HAVE_ARCH_SECCOMP_FILTER extern int __secure_computing(const struct seccomp_data *sd); -static inline int secure_computing(void) -{ - if (unlikely(test_syscall_work(SECCOMP))) - return __secure_computing(NULL); - return 0; -} +#define secure_computing(void) \ +({ \ + int __ret; \ + \ + if (unlikely(test_syscall_work(SECCOMP))) \ + __ret = __secure_computing(NULL); \ + else \ + __ret = 0; \ + __ret; \ +}) #else extern void secure_computing_strict(int this_syscall); #endif diff --git a/include/linux/seqlock.h b/include/linux/seqlock.h index 2c50965d5074f0..e20562569cac82 100644 --- a/include/linux/seqlock.h +++ b/include/linux/seqlock.h @@ -5,3 +5,7 @@ #include <linux/seqlock_types.h> #endif /* __LINUX_SEQLOCK_H */ + +#ifndef CONFIG_FAST_HEADERS +# include <linux/seqlock_api.h> +#endif diff --git a/include/linux/siphash.h b/include/linux/siphash.h index 6bba6d02f6074e..18360378d157b6 100644 --- a/include/linux/siphash.h +++ b/include/linux/siphash.h @@ -16,3 +16,7 @@ #include <linux/siphash_types.h> #endif /* _LINUX_SIPHASH_H */ + +#ifndef CONFIG_FAST_HEADERS +# include <linux/siphash_api.h> +#endif diff --git a/include/linux/skbuff.h b/include/linux/skbuff.h index 351668c9a4e591..083ec64d512767 100644 --- a/include/linux/skbuff.h +++ b/include/linux/skbuff.h @@ -5,3 +5,44 @@ #include <linux/skbuff_types.h> #endif /* _LINUX_SKBUFF_H */ + +#ifndef CONFIG_FAST_HEADERS +# include <linux/atomic.h> +# include <linux/bug.h> +# include <linux/bvec.h> +# include <linux/cache.h> +# include <linux/compiler.h> +# include <linux/dma-mapping.h> +# include <linux/fs.h> +# include <linux/highmem.h> +# include <linux/hrtimer.h> +# include <linux/huge_mm.h> +# include <linux/if_packet.h> +# include <linux/in6.h> +# include <linux/kernel.h> +# include <linux/mm.h> +# include <linux/mmzone.h> +# include <linux/netdev_features.h> +# include <linux/net.h> +# include <linux/random.h> +# include <linux/rbtree.h> +# include <linux/rcupdate.h> +# include <linux/rcuwait.h> +# include <linux/refcount.h> +# include <linux/sched/clock.h> +# include <linux/sched.h> +# include <linux/socket.h> +# include <linux/spinlock.h> +# include <linux/splice.h> +# include <linux/sysfs.h> +# include <linux/textsearch.h> +# include <linux/time.h> +# include <linux/vmalloc.h> +# include <net/checksum.h> +# include <net/flow_dissector.h> +# include <net/flow.h> +# include <net/page_pool.h> +#if IS_ENABLED(CONFIG_NF_CONNTRACK) +# include <linux/netfilter/nf_conntrack_common.h> +#endif +#endif diff --git a/include/linux/smp.h b/include/linux/smp.h index bf07a07593e264..91029712048b7a 100644 --- a/include/linux/smp.h +++ b/include/linux/smp.h @@ -5,3 +5,7 @@ #include <linux/smp_types.h> #endif /* __LINUX_SMP_H */ + +#ifndef CONFIG_FAST_HEADERS +# include <linux/smp_api.h> +#endif diff --git a/include/linux/socket.h b/include/linux/socket.h index f5e4cf55cd1090..a9b7aedcd921e2 100644 --- a/include/linux/socket.h +++ b/include/linux/socket.h @@ -429,3 +429,7 @@ extern int __sys_socketpair(int family, int type, int protocol, extern int __sys_shutdown_sock(struct socket *sock, int how); extern int __sys_shutdown(int fd, int how); #endif /* _LINUX_SOCKET_H */ + +#ifndef CONFIG_FAST_HEADERS +# include <linux/uio.h> +#endif diff --git a/include/linux/spinlock.h b/include/linux/spinlock.h index e4bec5377db9f5..cbd63317358cfc 100644 --- a/include/linux/spinlock.h +++ b/include/linux/spinlock.h @@ -5,3 +5,7 @@ #include <linux/spinlock_types.h> #endif /* __LINUX_SPINLOCK_H */ + +#ifndef CONFIG_FAST_HEADERS +# include <linux/spinlock_api.h> +#endif diff --git a/include/linux/swait.h b/include/linux/swait.h index 89ea61c015b6fd..bc3ce286230814 100644 --- a/include/linux/swait.h +++ b/include/linux/swait.h @@ -5,3 +5,7 @@ #include <linux/swait_types.h> #endif /* __LINUX_SWAIT_H */ + +#ifndef CONFIG_FAST_HEADERS +# include <linux/swait_api.h> +#endif diff --git a/include/linux/syscalls.h b/include/linux/syscalls.h index c41281620bfff6..b2487d4af57c76 100644 --- a/include/linux/syscalls.h +++ b/include/linux/syscalls.h @@ -5,3 +5,7 @@ #include <linux/syscalls_types.h> #endif /* __LINUX_SYSCALLS_H */ + +#ifndef CONFIG_FAST_HEADERS +# include <linux/syscalls_api.h> +#endif diff --git a/include/linux/time64.h b/include/linux/time64.h index 12a1d04209049c..f3e90abec1281b 100644 --- a/include/linux/time64.h +++ b/include/linux/time64.h @@ -5,3 +5,7 @@ #include <linux/time64_types.h> #endif /* _LINUX_TIME64_H */ + +#ifndef CONFIG_FAST_HEADERS +# include <linux/time64_api.h> +#endif diff --git a/include/linux/timerqueue.h b/include/linux/timerqueue.h index 12462cbc541214..1a7c0afa2a72c3 100644 --- a/include/linux/timerqueue.h +++ b/include/linux/timerqueue.h @@ -5,3 +5,7 @@ #include <linux/timerqueue_types.h> #endif /* _LINUX_TIMERQUEUE_H */ + +#ifndef CONFIG_FAST_HEADERS +# include <linux/timerqueue_api.h> +#endif diff --git a/include/linux/u64_stats_sync.h b/include/linux/u64_stats_sync.h index c60177d96643b6..114ee4567d569e 100644 --- a/include/linux/u64_stats_sync.h +++ b/include/linux/u64_stats_sync.h @@ -5,3 +5,7 @@ #include <linux/u64_stats_sync_types.h> #endif /* _LINUX_U64_STATS_SYNC_H */ + +#ifndef CONFIG_FAST_HEADERS +# include <linux/u64_stats_sync_api.h> +#endif diff --git a/include/linux/uio.h b/include/linux/uio.h index 3748d79a98a044..00512c7fae5f30 100644 --- a/include/linux/uio.h +++ b/include/linux/uio.h @@ -5,3 +5,7 @@ #include <linux/uio_types.h> #endif + +#ifndef CONFIG_FAST_HEADERS +# include <linux/uio_api.h> +#endif diff --git a/include/linux/uuid.h b/include/linux/uuid.h index c4173d9df798bd..5743e7b908b634 100644 --- a/include/linux/uuid.h +++ b/include/linux/uuid.h @@ -11,3 +11,7 @@ #include <linux/uuid_types.h> #endif + +#ifndef CONFIG_FAST_HEADERS +# include <linux/uuid_api.h> +#endif diff --git a/include/linux/wait.h b/include/linux/wait.h index 74b324c506a409..ca73ef9fbfcbc4 100644 --- a/include/linux/wait.h +++ b/include/linux/wait.h @@ -5,3 +5,7 @@ #include <linux/wait_types.h> #endif /* _LINUX_WAIT_H */ + +#ifndef CONFIG_FAST_HEADERS +# include <linux/wait_api.h> +#endif diff --git a/include/linux/workqueue.h b/include/linux/workqueue.h index a8c321f44d49de..1e753c8b97a5e2 100644 --- a/include/linux/workqueue.h +++ b/include/linux/workqueue.h @@ -5,3 +5,7 @@ #include <linux/workqueue_types.h> #endif /* __LINUX_WORKQUEUE_H */ + +#ifndef CONFIG_FAST_HEADERS +# include <linux/workqueue_api.h> +#endif diff --git a/include/linux/writeback.h b/include/linux/writeback.h index 2a05a656dd7248..b7f4c2b87649a1 100644 --- a/include/linux/writeback.h +++ b/include/linux/writeback.h @@ -5,3 +5,7 @@ #include <linux/writeback_types.h> #endif /* __LINUX_WRITEBACK_H */ + +#ifndef CONFIG_FAST_HEADERS +# include <linux/writeback_api.h> +#endif diff --git a/include/linux/xarray.h b/include/linux/xarray.h index 66bb8074a82d52..c30ef0aae04410 100644 --- a/include/linux/xarray.h +++ b/include/linux/xarray.h @@ -5,3 +5,7 @@ #include <linux/xarray_types.h> #endif /* _LINUX_XARRAY_H */ + +#ifndef CONFIG_FAST_HEADERS +# include <linux/xarray_api.h> +#endif diff --git a/include/net/dst.h b/include/net/dst.h index ce8a4fc253f603..a0f5c3836015d4 100644 --- a/include/net/dst.h +++ b/include/net/dst.h @@ -5,3 +5,7 @@ #include <net/dst_types.h> #endif /* _NET_DST_H */ + +#ifndef CONFIG_FAST_HEADERS +# include <net/dst_api.h> +#endif diff --git a/include/net/inet_sock.h b/include/net/inet_sock.h index f99e54d35a148c..d2fab6e0fba34c 100644 --- a/include/net/inet_sock.h +++ b/include/net/inet_sock.h @@ -5,3 +5,7 @@ #include <net/inet_sock_types.h> #endif /* _INET_SOCK_H */ + +#ifndef CONFIG_FAST_HEADERS +# include <net/inet_sock_api.h> +#endif diff --git a/include/net/ip_fib.h b/include/net/ip_fib.h index 1fd39148fee485..34bd8427bc476b 100644 --- a/include/net/ip_fib.h +++ b/include/net/ip_fib.h @@ -5,3 +5,7 @@ #include <net/ip_fib_types.h> #endif /* _NET_IF_FIB_H */ + +#ifndef CONFIG_FAST_HEADERS +# include <net/ip_fib_api.h> +#endif diff --git a/include/net/ipv6.h b/include/net/ipv6.h index 5d720638f5ae0e..4f332edc18e839 100644 --- a/include/net/ipv6.h +++ b/include/net/ipv6.h @@ -5,3 +5,7 @@ #include <net/ipv6_types.h> #endif /* _NET_IPV6_H */ + +#ifndef CONFIG_FAST_HEADERS +# include <net/ipv6_api.h> +#endif diff --git a/include/net/ndisc.h b/include/net/ndisc.h index 707eade47cc36f..a1b2309783642f 100644 --- a/include/net/ndisc.h +++ b/include/net/ndisc.h @@ -5,3 +5,7 @@ #include <net/ndisc_types.h> #endif + +#ifndef CONFIG_FAST_HEADERS +# include <net/ndisc_api.h> +#endif diff --git a/include/net/neighbour.h b/include/net/neighbour.h index 5aeca18118aa45..61563bb5c561df 100644 --- a/include/net/neighbour.h +++ b/include/net/neighbour.h @@ -5,3 +5,7 @@ #include <net/neighbour_types.h> #endif + +#ifndef CONFIG_FAST_HEADERS +# include <net/neighbour_api.h> +#endif diff --git a/include/net/net_namespace.h b/include/net/net_namespace.h index 4948175905cd04..43554bfbaeef28 100644 --- a/include/net/net_namespace.h +++ b/include/net/net_namespace.h @@ -8,3 +8,7 @@ #include <net/net_namespace_types.h> #endif /* __NET_NET_NAMESPACE_H */ + +#ifndef CONFIG_FAST_HEADERS +# include <net/net_namespace_api.h> +#endif diff --git a/include/net/netlink.h b/include/net/netlink.h index 47b1e3c8f34b52..9038f25ce95fcf 100644 --- a/include/net/netlink.h +++ b/include/net/netlink.h @@ -5,3 +5,7 @@ #include <net/netlink_types.h> #endif + +#ifndef CONFIG_FAST_HEADERS +# include <net/netlink_api.h> +#endif diff --git a/include/net/route.h b/include/net/route.h index 638fb9f6aa7c24..ce8f8d1644c5b3 100644 --- a/include/net/route.h +++ b/include/net/route.h @@ -5,3 +5,7 @@ #include <net/route_types.h> #endif /* _ROUTE_H */ + +#ifndef CONFIG_FAST_HEADERS +# include <net/route_api.h> +#endif diff --git a/include/net/rtnetlink.h b/include/net/rtnetlink.h index 4c445e60f91179..0ef8e1797184b6 100644 --- a/include/net/rtnetlink.h +++ b/include/net/rtnetlink.h @@ -5,3 +5,7 @@ #include <net/rtnetlink_types.h> #endif + +#ifndef CONFIG_FAST_HEADERS +# include <net/rtnetlink_api.h> +#endif diff --git a/include/net/sch_generic.h b/include/net/sch_generic.h index 3e3a1cb6b250d2..6762a603a5d503 100644 --- a/include/net/sch_generic.h +++ b/include/net/sch_generic.h @@ -5,3 +5,7 @@ #include <net/sch_generic_types.h> #endif + +#ifndef CONFIG_FAST_HEADERS +# include <net/sch_generic_api.h> +#endif diff --git a/include/net/sock.h b/include/net/sock.h index cc22303bbaef62..0337988f0add65 100644 --- a/include/net/sock.h +++ b/include/net/sock.h @@ -5,3 +5,63 @@ #include <net/sock_types.h> #endif /* _SOCK_H */ + +#ifndef CONFIG_FAST_HEADERS +# include <linux/bio.h> +# include <linux/bpf-cgroup.h> +# include <linux/cgroup.h> +# include <linux/compat.h> +# include <linux/cred.h> +# include <linux/delay.h> +# include <linux/dma-mapping.h> +# include <linux/eventfd.h> +# include <linux/filter.h> +# include <linux/flex_proportions.h> +# include <linux/freezer.h> +# include <linux/fs.h> +# include <linux/huge_mm.h> +# include <linux/if_link.h> +# include <linux/if_vlan.h> +# include <linux/interrupt.h> +# include <linux/iocontext.h> +# include <linux/ioport.h> +# include <linux/ioprio.h> +# include <linux/kthread.h> +# include <linux/list_bl.h> +# include <linux/list_lru.h> +# include <linux/memcontrol.h> +# include <linux/mempool.h> +# include <linux/mmap_lock.h> +# include <linux/mm.h> +# include <linux/mmzone.h> +# include <linux/netdevice.h> +# include <linux/nsproxy.h> +# include <linux/poll.h> +# include <linux/rbtree_latch.h> +# include <linux/rcu_sync.h> +# include <linux/rcuwait.h> +# include <linux/sched/mm.h> +# include <linux/sched/signal.h> +# include <linux/seq_file.h> +# include <linux/seq_file_net.h> +# include <linux/skbuff.h> +# include <linux/srcu.h> +# include <linux/swap.h> +# include <linux/uaccess.h> +# include <linux/uio.h> +# include <linux/user_namespace.h> +# include <linux/vmstat.h> +# include <linux/vtime.h> +# include <linux/writeback.h> +# include <net/dcbnl.h> +# include <net/fib_notifier.h> +# include <net/fib_rules.h> +# include <net/inet_frag.h> +# include <net/l3mdev.h> +# include <net/neighbour.h> +# include <net/netlink.h> +# include <net/net_namespace.h> +# include <net/netprio_cgroup.h> +# include <net/scm.h> +# include <net/sock_api.h> +#endif diff --git a/include/net/xdp.h b/include/net/xdp.h index cb1c138c9148d5..40b0aa9cfc9661 100644 --- a/include/net/xdp.h +++ b/include/net/xdp.h @@ -5,3 +5,7 @@ #include <net/xdp_types.h> #endif /* __LINUX_NET_XDP_H__ */ + +#ifndef CONFIG_FAST_HEADERS +# include <net/xdp_api.h> +#endif diff --git a/init/Kconfig b/init/Kconfig index e962b847ee4daa..202e3a2e4284da 100644 --- a/init/Kconfig +++ b/init/Kconfig @@ -693,6 +693,22 @@ config IKCONFIG It can also be extracted from a running kernel by reading /proc/config.gz if enabled (below). +config FAST_HEADERS + bool "Fast headers support" if COMPILE_TEST + default y + help + This option enables the 'fast headers' build feature, which produces + the exact same kernel, but with up to 70%-80% faster build time. + + Since the new headers have much fewer dependencies, the chance + of build breakage is higher, and some architectures do not work. + + Disabling this feature on a kernel that builds fine will slow down + the kernel build. + + If unsure, leave this enabled, otherwise disable this if you see + a build failure with the fast-headers build. + config IKCONFIG_PROC bool "Enable access to .config through /proc/config.gz" depends on IKCONFIG && PROC_FS |