aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLinus Torvalds <torvalds@linux-foundation.org>2019-01-06 19:33:10 -0500
committerLinus Torvalds <torvalds@linux-foundation.org>2019-01-06 19:33:10 -0500
commit85e1ffbd42f664965dc05f6e9851c06379f27fb2 (patch)
tree125d9a6ce2f74873a0d72c6c13903f11ab7fd51b
parentac5eed2b41776b05cf03aac761d3bb5e64eea24c (diff)
parentd86271af64602e7c86c003b27f27c7216706ff96 (diff)
Merge tag 'kbuild-v4.21-3' of git://git.kernel.org/pub/scm/linux/kernel/git/masahiroy/linux-kbuild
Pull more Kbuild updates from Masahiro Yamada: - improve boolinit.cocci and use_after_iter.cocci semantic patches - fix alignment for kallsyms - move 'asm goto' compiler test to Kconfig and clean up jump_label CONFIG option - generate asm-generic wrappers automatically if arch does not implement mandatory UAPI headers - remove redundant generic-y defines - misc cleanups * tag 'kbuild-v4.21-3' of git://git.kernel.org/pub/scm/linux/kernel/git/masahiroy/linux-kbuild: kconfig: rename generated .*conf-cfg to *conf-cfg kbuild: remove unnecessary stubs for archheader and archscripts kbuild: use assignment instead of define ... endef for filechk_* rules arch: remove redundant UAPI generic-y defines kbuild: generate asm-generic wrappers if mandatory headers are missing arch: remove stale comments "UAPI Header export list" riscv: remove redundant kernel-space generic-y kbuild: change filechk to surround the given command with { } kbuild: remove redundant target cleaning on failure kbuild: clean up rule_dtc_dt_yaml kbuild: remove UIMAGE_IN and UIMAGE_OUT jump_label: move 'asm goto' support test to Kconfig kallsyms: lower alignment on ARM scripts: coccinelle: boolinit: drop warnings on named constants scripts: coccinelle: check for redeclaration kconfig: remove unused "file" field of yylval union nds32: remove redundant kernel-space generic-y nios2: remove unneeded HAS_DMA define
-rw-r--r--Documentation/kbuild/makefiles.txt9
-rw-r--r--Kbuild4
-rw-r--r--Makefile22
-rw-r--r--arch/Kconfig1
-rw-r--r--arch/alpha/include/uapi/asm/Kbuild7
-rw-r--r--arch/arc/include/uapi/asm/Kbuild25
-rw-r--r--arch/arm/boot/Makefile2
-rw-r--r--arch/arm/boot/compressed/Makefile2
-rw-r--r--arch/arm/include/uapi/asm/Kbuild18
-rw-r--r--arch/arm/kernel/jump_label.c4
-rw-r--r--arch/arm/tools/Makefile3
-rw-r--r--arch/arm64/include/uapi/asm/Kbuild18
-rw-r--r--arch/arm64/kernel/jump_label.c4
-rw-r--r--arch/c6x/include/uapi/asm/Kbuild27
-rw-r--r--arch/csky/include/uapi/asm/Kbuild27
-rw-r--r--arch/h8300/include/uapi/asm/Kbuild27
-rw-r--r--arch/hexagon/include/uapi/asm/Kbuild24
-rw-r--r--arch/ia64/include/uapi/asm/Kbuild7
-rw-r--r--arch/m68k/include/uapi/asm/Kbuild20
-rw-r--r--arch/microblaze/include/uapi/asm/Kbuild26
-rw-r--r--arch/mips/include/uapi/asm/Kbuild3
-rw-r--r--arch/mips/kernel/jump_label.c4
-rw-r--r--arch/nds32/include/asm/Kbuild10
-rw-r--r--arch/nds32/include/uapi/asm/Kbuild26
-rw-r--r--arch/nios2/Kconfig3
-rw-r--r--arch/nios2/include/uapi/asm/Kbuild26
-rw-r--r--arch/openrisc/include/uapi/asm/Kbuild28
-rw-r--r--arch/parisc/include/uapi/asm/Kbuild7
-rw-r--r--arch/powerpc/include/asm/asm-prototypes.h2
-rw-r--r--arch/powerpc/include/uapi/asm/Kbuild7
-rw-r--r--arch/powerpc/kernel/jump_label.c2
-rw-r--r--arch/powerpc/platforms/powernv/opal-tracepoints.c2
-rw-r--r--arch/powerpc/platforms/powernv/opal-wrappers.S2
-rw-r--r--arch/powerpc/platforms/pseries/hvCall.S4
-rw-r--r--arch/powerpc/platforms/pseries/lpar.c2
-rw-r--r--arch/riscv/include/asm/Kbuild25
-rw-r--r--arch/riscv/include/uapi/asm/Kbuild28
-rw-r--r--arch/s390/include/uapi/asm/Kbuild16
-rw-r--r--arch/s390/kernel/Makefile3
-rw-r--r--arch/s390/kernel/jump_label.c4
-rw-r--r--arch/s390/kernel/syscalls/Makefile12
-rw-r--r--arch/s390/tools/Makefile9
-rw-r--r--arch/sh/include/uapi/asm/Kbuild19
-rw-r--r--arch/sh/tools/Makefile2
-rw-r--r--arch/sparc/include/uapi/asm/Kbuild3
-rw-r--r--arch/sparc/kernel/Makefile2
-rw-r--r--arch/sparc/kernel/jump_label.c4
-rw-r--r--arch/unicore32/include/uapi/asm/Kbuild29
-rw-r--r--arch/x86/Makefile2
-rw-r--r--arch/x86/boot/compressed/Makefile2
-rw-r--r--arch/x86/entry/calling.h2
-rw-r--r--arch/x86/include/asm/cpufeature.h2
-rw-r--r--arch/x86/include/asm/jump_label.h13
-rw-r--r--arch/x86/include/asm/rmwcc.h6
-rw-r--r--arch/x86/include/uapi/asm/Kbuild3
-rw-r--r--arch/x86/kernel/Makefile3
-rw-r--r--arch/x86/kernel/jump_label.c4
-rw-r--r--arch/x86/kvm/emulate.c2
-rw-r--r--arch/x86/lib/Makefile2
-rw-r--r--arch/xtensa/include/uapi/asm/Kbuild10
-rw-r--r--arch/xtensa/kernel/jump_label.c4
-rw-r--r--certs/Makefile2
-rw-r--r--firmware/Makefile5
-rw-r--r--include/linux/dynamic_debug.h6
-rw-r--r--include/linux/jump_label.h22
-rw-r--r--include/linux/jump_label_ratelimit.h8
-rw-r--r--include/linux/module.h2
-rw-r--r--include/linux/netfilter.h4
-rw-r--r--include/linux/netfilter_ingress.h2
-rw-r--r--include/uapi/linux/Kbuild2
-rw-r--r--init/Kconfig3
-rw-r--r--kernel/Makefile6
-rw-r--r--kernel/jump_label.c10
-rw-r--r--kernel/module.c2
-rw-r--r--kernel/sched/core.c2
-rw-r--r--kernel/sched/debug.c4
-rw-r--r--kernel/sched/fair.c6
-rw-r--r--kernel/sched/sched.h6
-rw-r--r--lib/dynamic_debug.c2
-rw-r--r--lib/raid6/Makefile5
-rw-r--r--net/core/dev.c6
-rw-r--r--net/netfilter/core.c6
-rw-r--r--scripts/Kbuild.include10
-rw-r--r--scripts/Makefile.asm-generic4
-rw-r--r--scripts/Makefile.headersinst7
-rw-r--r--scripts/Makefile.lib34
-rw-r--r--scripts/coccinelle/iterators/use_after_iter.cocci3
-rw-r--r--scripts/coccinelle/misc/boolinit.cocci5
-rwxr-xr-xscripts/gcc-goto.sh2
-rw-r--r--scripts/kallsyms.c4
-rw-r--r--scripts/kconfig/.gitignore1
-rw-r--r--scripts/kconfig/Makefile40
-rw-r--r--scripts/kconfig/zconf.y1
-rw-r--r--tools/arch/x86/include/asm/rmwcc.h6
94 files changed, 150 insertions, 694 deletions
diff --git a/Documentation/kbuild/makefiles.txt b/Documentation/kbuild/makefiles.txt
index 8da26c6dd886..bf28c47bfd72 100644
--- a/Documentation/kbuild/makefiles.txt
+++ b/Documentation/kbuild/makefiles.txt
@@ -1296,9 +1296,12 @@ See subsequent chapter for the syntax of the Kbuild file.
1296 1296
1297--- 7.4 mandatory-y 1297--- 7.4 mandatory-y
1298 1298
1299 mandatory-y is essentially used by include/uapi/asm-generic/Kbuild.asm 1299 mandatory-y is essentially used by include/(uapi/)asm-generic/Kbuild.asm
1300 to define the minimum set of headers that must be exported in 1300 to define the minimum set of ASM headers that all architectures must have.
1301 include/asm. 1301
1302 This works like optional generic-y. If a mandatory header is missing
1303 in arch/$(ARCH)/include/(uapi/)/asm, Kbuild will automatically generate
1304 a wrapper of the asm-generic one.
1302 1305
1303 The convention is to list one subdir per line and 1306 The convention is to list one subdir per line and
1304 preferably in alphabetic order. 1307 preferably in alphabetic order.
diff --git a/Kbuild b/Kbuild
index 414ae6da1f50..65db5bef2e36 100644
--- a/Kbuild
+++ b/Kbuild
@@ -26,9 +26,7 @@ timeconst-file := include/generated/timeconst.h
26 26
27targets += $(timeconst-file) 27targets += $(timeconst-file)
28 28
29define filechk_gentimeconst 29filechk_gentimeconst = echo $(CONFIG_HZ) | bc -q $<
30 (echo $(CONFIG_HZ) | bc -q $< )
31endef
32 30
33$(timeconst-file): kernel/time/timeconst.bc FORCE 31$(timeconst-file): kernel/time/timeconst.bc FORCE
34 $(call filechk,gentimeconst) 32 $(call filechk,gentimeconst)
diff --git a/Makefile b/Makefile
index 60a473247657..3e71fa2ee9ed 100644
--- a/Makefile
+++ b/Makefile
@@ -514,13 +514,6 @@ RETPOLINE_VDSO_CFLAGS := $(call cc-option,$(RETPOLINE_VDSO_CFLAGS_GCC),$(call cc
514export RETPOLINE_CFLAGS 514export RETPOLINE_CFLAGS
515export RETPOLINE_VDSO_CFLAGS 515export RETPOLINE_VDSO_CFLAGS
516 516
517# check for 'asm goto'
518ifeq ($(shell $(CONFIG_SHELL) $(srctree)/scripts/gcc-goto.sh $(CC) $(KBUILD_CFLAGS)), y)
519 CC_HAVE_ASM_GOTO := 1
520 KBUILD_CFLAGS += -DCC_HAVE_ASM_GOTO
521 KBUILD_AFLAGS += -DCC_HAVE_ASM_GOTO
522endif
523
524# The expansion should be delayed until arch/$(SRCARCH)/Makefile is included. 517# The expansion should be delayed until arch/$(SRCARCH)/Makefile is included.
525# Some architectures define CROSS_COMPILE in arch/$(SRCARCH)/Makefile. 518# Some architectures define CROSS_COMPILE in arch/$(SRCARCH)/Makefile.
526# CC_VERSION_TEXT is referenced from Kconfig (so it needs export), 519# CC_VERSION_TEXT is referenced from Kconfig (so it needs export),
@@ -1048,9 +1041,8 @@ PHONY += $(vmlinux-dirs)
1048$(vmlinux-dirs): prepare 1041$(vmlinux-dirs): prepare
1049 $(Q)$(MAKE) $(build)=$@ need-builtin=1 1042 $(Q)$(MAKE) $(build)=$@ need-builtin=1
1050 1043
1051define filechk_kernel.release 1044filechk_kernel.release = \
1052 echo "$(KERNELVERSION)$$($(CONFIG_SHELL) $(srctree)/scripts/setlocalversion $(srctree))" 1045 echo "$(KERNELVERSION)$$($(CONFIG_SHELL) $(srctree)/scripts/setlocalversion $(srctree))"
1053endef
1054 1046
1055# Store (new) KERNELRELEASE string in include/config/kernel.release 1047# Store (new) KERNELRELEASE string in include/config/kernel.release
1056include/config/kernel.release: $(srctree)/Makefile FORCE 1048include/config/kernel.release: $(srctree)/Makefile FORCE
@@ -1134,13 +1126,13 @@ define filechk_utsrelease.h
1134 echo '"$(KERNELRELEASE)" exceeds $(uts_len) characters' >&2; \ 1126 echo '"$(KERNELRELEASE)" exceeds $(uts_len) characters' >&2; \
1135 exit 1; \ 1127 exit 1; \
1136 fi; \ 1128 fi; \
1137 (echo \#define UTS_RELEASE \"$(KERNELRELEASE)\";) 1129 echo \#define UTS_RELEASE \"$(KERNELRELEASE)\"
1138endef 1130endef
1139 1131
1140define filechk_version.h 1132define filechk_version.h
1141 (echo \#define LINUX_VERSION_CODE $(shell \ 1133 echo \#define LINUX_VERSION_CODE $(shell \
1142 expr $(VERSION) \* 65536 + 0$(PATCHLEVEL) \* 256 + 0$(SUBLEVEL)); \ 1134 expr $(VERSION) \* 65536 + 0$(PATCHLEVEL) \* 256 + 0$(SUBLEVEL)); \
1143 echo '#define KERNEL_VERSION(a,b,c) (((a) << 16) + ((b) << 8) + (c))';) 1135 echo '#define KERNEL_VERSION(a,b,c) (((a) << 16) + ((b) << 8) + (c))'
1144endef 1136endef
1145 1137
1146$(version_h): FORCE 1138$(version_h): FORCE
@@ -1164,11 +1156,7 @@ export INSTALL_HDR_PATH = $(objtree)/usr
1164# If we do an all arch process set dst to include/arch-$(SRCARCH) 1156# If we do an all arch process set dst to include/arch-$(SRCARCH)
1165hdr-dst = $(if $(KBUILD_HEADERS), dst=include/arch-$(SRCARCH), dst=include) 1157hdr-dst = $(if $(KBUILD_HEADERS), dst=include/arch-$(SRCARCH), dst=include)
1166 1158
1167PHONY += archheaders 1159PHONY += archheaders archscripts
1168archheaders:
1169
1170PHONY += archscripts
1171archscripts:
1172 1160
1173PHONY += __headers 1161PHONY += __headers
1174__headers: $(version_h) scripts_basic uapi-asm-generic archheaders archscripts 1162__headers: $(version_h) scripts_basic uapi-asm-generic archheaders archscripts
diff --git a/arch/Kconfig b/arch/Kconfig
index b70c952ac838..4cfb6de48f79 100644
--- a/arch/Kconfig
+++ b/arch/Kconfig
@@ -71,6 +71,7 @@ config KPROBES
71config JUMP_LABEL 71config JUMP_LABEL
72 bool "Optimize very unlikely/likely branches" 72 bool "Optimize very unlikely/likely branches"
73 depends on HAVE_ARCH_JUMP_LABEL 73 depends on HAVE_ARCH_JUMP_LABEL
74 depends on CC_HAS_ASM_GOTO
74 help 75 help
75 This option enables a transparent branch optimization that 76 This option enables a transparent branch optimization that
76 makes certain almost-always-true or almost-always-false branch 77 makes certain almost-always-true or almost-always-false branch
diff --git a/arch/alpha/include/uapi/asm/Kbuild b/arch/alpha/include/uapi/asm/Kbuild
index 6a3a0ce0c61b..439f5157aa35 100644
--- a/arch/alpha/include/uapi/asm/Kbuild
+++ b/arch/alpha/include/uapi/asm/Kbuild
@@ -1,10 +1,3 @@
1# UAPI Header export list
2include include/uapi/asm-generic/Kbuild.asm 1include include/uapi/asm-generic/Kbuild.asm
3 2
4generated-y += unistd_32.h 3generated-y += unistd_32.h
5generic-y += bpf_perf_event.h
6generic-y += ipcbuf.h
7generic-y += msgbuf.h
8generic-y += poll.h
9generic-y += sembuf.h
10generic-y += shmbuf.h
diff --git a/arch/arc/include/uapi/asm/Kbuild b/arch/arc/include/uapi/asm/Kbuild
index 170b5db64afe..0febf1a07c30 100644
--- a/arch/arc/include/uapi/asm/Kbuild
+++ b/arch/arc/include/uapi/asm/Kbuild
@@ -1,29 +1,4 @@
1# UAPI Header export list
2include include/uapi/asm-generic/Kbuild.asm 1include include/uapi/asm-generic/Kbuild.asm
3 2
4generic-y += auxvec.h
5generic-y += bitsperlong.h
6generic-y += bpf_perf_event.h
7generic-y += errno.h
8generic-y += fcntl.h
9generic-y += ioctl.h
10generic-y += ioctls.h
11generic-y += ipcbuf.h
12generic-y += kvm_para.h 3generic-y += kvm_para.h
13generic-y += mman.h
14generic-y += msgbuf.h
15generic-y += param.h
16generic-y += poll.h
17generic-y += posix_types.h
18generic-y += resource.h
19generic-y += sembuf.h
20generic-y += shmbuf.h
21generic-y += siginfo.h
22generic-y += socket.h
23generic-y += sockios.h
24generic-y += stat.h
25generic-y += statfs.h
26generic-y += termbits.h
27generic-y += termios.h
28generic-y += types.h
29generic-y += ucontext.h 4generic-y += ucontext.h
diff --git a/arch/arm/boot/Makefile b/arch/arm/boot/Makefile
index a3af4dc08c3e..0b3cd7a33a26 100644
--- a/arch/arm/boot/Makefile
+++ b/arch/arm/boot/Makefile
@@ -32,7 +32,7 @@ targets := Image zImage xipImage bootpImage uImage
32ifeq ($(CONFIG_XIP_KERNEL),y) 32ifeq ($(CONFIG_XIP_KERNEL),y)
33 33
34cmd_deflate_xip_data = $(CONFIG_SHELL) -c \ 34cmd_deflate_xip_data = $(CONFIG_SHELL) -c \
35 '$(srctree)/$(src)/deflate_xip_data.sh $< $@ || { rm -f $@; false; }' 35 '$(srctree)/$(src)/deflate_xip_data.sh $< $@'
36 36
37ifeq ($(CONFIG_XIP_DEFLATED_DATA),y) 37ifeq ($(CONFIG_XIP_DEFLATED_DATA),y)
38quiet_cmd_mkxip = XIPZ $@ 38quiet_cmd_mkxip = XIPZ $@
diff --git a/arch/arm/boot/compressed/Makefile b/arch/arm/boot/compressed/Makefile
index 01bf2585a0fa..6114ae6ea466 100644
--- a/arch/arm/boot/compressed/Makefile
+++ b/arch/arm/boot/compressed/Makefile
@@ -170,7 +170,7 @@ check_for_bad_syms = \
170bad_syms=$$($(CROSS_COMPILE)nm $@ | sed -n 's/^.\{8\} [bc] \(.*\)/\1/p') && \ 170bad_syms=$$($(CROSS_COMPILE)nm $@ | sed -n 's/^.\{8\} [bc] \(.*\)/\1/p') && \
171[ -z "$$bad_syms" ] || \ 171[ -z "$$bad_syms" ] || \
172 ( echo "following symbols must have non local/private scope:" >&2; \ 172 ( echo "following symbols must have non local/private scope:" >&2; \
173 echo "$$bad_syms" >&2; rm -f $@; false ) 173 echo "$$bad_syms" >&2; false )
174 174
175check_for_multiple_zreladdr = \ 175check_for_multiple_zreladdr = \
176if [ $(words $(ZRELADDR)) -gt 1 -a "$(CONFIG_AUTO_ZRELADDR)" = "" ]; then \ 176if [ $(words $(ZRELADDR)) -gt 1 -a "$(CONFIG_AUTO_ZRELADDR)" = "" ]; then \
diff --git a/arch/arm/include/uapi/asm/Kbuild b/arch/arm/include/uapi/asm/Kbuild
index 4d1cc1847edf..eee8f7d23899 100644
--- a/arch/arm/include/uapi/asm/Kbuild
+++ b/arch/arm/include/uapi/asm/Kbuild
@@ -1,24 +1,6 @@
1# SPDX-License-Identifier: GPL-2.0 1# SPDX-License-Identifier: GPL-2.0
2# UAPI Header export list
3include include/uapi/asm-generic/Kbuild.asm 2include include/uapi/asm-generic/Kbuild.asm
4 3
5generated-y += unistd-common.h 4generated-y += unistd-common.h
6generated-y += unistd-oabi.h 5generated-y += unistd-oabi.h
7generated-y += unistd-eabi.h 6generated-y += unistd-eabi.h
8
9generic-y += bitsperlong.h
10generic-y += bpf_perf_event.h
11generic-y += errno.h
12generic-y += ioctl.h
13generic-y += ipcbuf.h
14generic-y += msgbuf.h
15generic-y += param.h
16generic-y += poll.h
17generic-y += resource.h
18generic-y += sembuf.h
19generic-y += shmbuf.h
20generic-y += siginfo.h
21generic-y += socket.h
22generic-y += sockios.h
23generic-y += termbits.h
24generic-y += termios.h
diff --git a/arch/arm/kernel/jump_label.c b/arch/arm/kernel/jump_label.c
index 90bce3d9928e..303b3ab87f7e 100644
--- a/arch/arm/kernel/jump_label.c
+++ b/arch/arm/kernel/jump_label.c
@@ -4,8 +4,6 @@
4#include <asm/patch.h> 4#include <asm/patch.h>
5#include <asm/insn.h> 5#include <asm/insn.h>
6 6
7#ifdef HAVE_JUMP_LABEL
8
9static void __arch_jump_label_transform(struct jump_entry *entry, 7static void __arch_jump_label_transform(struct jump_entry *entry,
10 enum jump_label_type type, 8 enum jump_label_type type,
11 bool is_static) 9 bool is_static)
@@ -35,5 +33,3 @@ void arch_jump_label_transform_static(struct jump_entry *entry,
35{ 33{
36 __arch_jump_label_transform(entry, type, true); 34 __arch_jump_label_transform(entry, type, true);
37} 35}
38
39#endif
diff --git a/arch/arm/tools/Makefile b/arch/arm/tools/Makefile
index ddb89a7db36f..27d8beb7c941 100644
--- a/arch/arm/tools/Makefile
+++ b/arch/arm/tools/Makefile
@@ -35,8 +35,7 @@ _dummy := $(shell [ -d '$(kapi)' ] || mkdir -p '$(kapi)') \
35 35
36quiet_cmd_gen_mach = GEN $@ 36quiet_cmd_gen_mach = GEN $@
37 cmd_gen_mach = mkdir -p $(dir $@) && \ 37 cmd_gen_mach = mkdir -p $(dir $@) && \
38 $(AWK) -f $(filter-out $(PHONY),$^) > $@ || \ 38 $(AWK) -f $(filter-out $(PHONY),$^) > $@
39 { rm -f $@; /bin/false; }
40 39
41$(kapi)/mach-types.h: $(src)/gen-mach-types $(src)/mach-types FORCE 40$(kapi)/mach-types.h: $(src)/gen-mach-types $(src)/mach-types FORCE
42 $(call if_changed,gen_mach) 41 $(call if_changed,gen_mach)
diff --git a/arch/arm64/include/uapi/asm/Kbuild b/arch/arm64/include/uapi/asm/Kbuild
index 6c5adf458690..87eea29b24ab 100644
--- a/arch/arm64/include/uapi/asm/Kbuild
+++ b/arch/arm64/include/uapi/asm/Kbuild
@@ -1,22 +1,4 @@
1# SPDX-License-Identifier: GPL-2.0 1# SPDX-License-Identifier: GPL-2.0
2# UAPI Header export list
3include include/uapi/asm-generic/Kbuild.asm 2include include/uapi/asm-generic/Kbuild.asm
4 3
5generic-y += errno.h
6generic-y += ioctl.h
7generic-y += ioctls.h
8generic-y += ipcbuf.h
9generic-y += kvm_para.h 4generic-y += kvm_para.h
10generic-y += mman.h
11generic-y += msgbuf.h
12generic-y += poll.h
13generic-y += resource.h
14generic-y += sembuf.h
15generic-y += shmbuf.h
16generic-y += socket.h
17generic-y += sockios.h
18generic-y += swab.h
19generic-y += termbits.h
20generic-y += termios.h
21generic-y += types.h
22generic-y += siginfo.h
diff --git a/arch/arm64/kernel/jump_label.c b/arch/arm64/kernel/jump_label.c
index 646b9562ee64..1eff270e8861 100644
--- a/arch/arm64/kernel/jump_label.c
+++ b/arch/arm64/kernel/jump_label.c
@@ -20,8 +20,6 @@
20#include <linux/jump_label.h> 20#include <linux/jump_label.h>
21#include <asm/insn.h> 21#include <asm/insn.h>
22 22
23#ifdef HAVE_JUMP_LABEL
24
25void arch_jump_label_transform(struct jump_entry *entry, 23void arch_jump_label_transform(struct jump_entry *entry,
26 enum jump_label_type type) 24 enum jump_label_type type)
27{ 25{
@@ -49,5 +47,3 @@ void arch_jump_label_transform_static(struct jump_entry *entry,
49 * NOP needs to be replaced by a branch. 47 * NOP needs to be replaced by a branch.
50 */ 48 */
51} 49}
52
53#endif /* HAVE_JUMP_LABEL */
diff --git a/arch/c6x/include/uapi/asm/Kbuild b/arch/c6x/include/uapi/asm/Kbuild
index 26644e15d854..0febf1a07c30 100644
--- a/arch/c6x/include/uapi/asm/Kbuild
+++ b/arch/c6x/include/uapi/asm/Kbuild
@@ -1,31 +1,4 @@
1# UAPI Header export list
2include include/uapi/asm-generic/Kbuild.asm 1include include/uapi/asm-generic/Kbuild.asm
3 2
4generic-y += auxvec.h
5generic-y += bitsperlong.h
6generic-y += bpf_perf_event.h
7generic-y += errno.h
8generic-y += fcntl.h
9generic-y += ioctl.h
10generic-y += ioctls.h
11generic-y += ipcbuf.h
12generic-y += kvm_para.h 3generic-y += kvm_para.h
13generic-y += mman.h
14generic-y += msgbuf.h
15generic-y += param.h
16generic-y += poll.h
17generic-y += posix_types.h
18generic-y += resource.h
19generic-y += sembuf.h
20generic-y += shmbuf.h
21generic-y += shmparam.h
22generic-y += siginfo.h
23generic-y += signal.h
24generic-y += socket.h
25generic-y += sockios.h
26generic-y += stat.h
27generic-y += statfs.h
28generic-y += termbits.h
29generic-y += termios.h
30generic-y += types.h
31generic-y += ucontext.h 4generic-y += ucontext.h
diff --git a/arch/csky/include/uapi/asm/Kbuild b/arch/csky/include/uapi/asm/Kbuild
index 7449fdeb973d..c1b06dcf6cf8 100644
--- a/arch/csky/include/uapi/asm/Kbuild
+++ b/arch/csky/include/uapi/asm/Kbuild
@@ -1,30 +1,3 @@
1include include/uapi/asm-generic/Kbuild.asm 1include include/uapi/asm-generic/Kbuild.asm
2 2
3generic-y += auxvec.h
4generic-y += param.h
5generic-y += bpf_perf_event.h
6generic-y += errno.h
7generic-y += fcntl.h
8generic-y += ioctl.h
9generic-y += ioctls.h
10generic-y += ipcbuf.h
11generic-y += shmbuf.h
12generic-y += bitsperlong.h
13generic-y += mman.h
14generic-y += msgbuf.h
15generic-y += poll.h
16generic-y += posix_types.h
17generic-y += resource.h
18generic-y += sembuf.h
19generic-y += siginfo.h
20generic-y += signal.h
21generic-y += socket.h
22generic-y += sockios.h
23generic-y += statfs.h
24generic-y += stat.h
25generic-y += setup.h
26generic-y += swab.h
27generic-y += termbits.h
28generic-y += termios.h
29generic-y += types.h
30generic-y += ucontext.h 3generic-y += ucontext.h
diff --git a/arch/h8300/include/uapi/asm/Kbuild b/arch/h8300/include/uapi/asm/Kbuild
index 2f65f78792cb..0febf1a07c30 100644
--- a/arch/h8300/include/uapi/asm/Kbuild
+++ b/arch/h8300/include/uapi/asm/Kbuild
@@ -1,31 +1,4 @@
1# UAPI Header export list
2include include/uapi/asm-generic/Kbuild.asm 1include include/uapi/asm-generic/Kbuild.asm
3 2
4generic-y += auxvec.h
5generic-y += bpf_perf_event.h
6generic-y += errno.h
7generic-y += fcntl.h
8generic-y += ioctl.h
9generic-y += ioctls.h
10generic-y += ipcbuf.h
11generic-y += kvm_para.h 3generic-y += kvm_para.h
12generic-y += mman.h
13generic-y += msgbuf.h
14generic-y += param.h
15generic-y += poll.h
16generic-y += posix_types.h
17generic-y += resource.h
18generic-y += sembuf.h
19generic-y += setup.h
20generic-y += shmbuf.h
21generic-y += shmparam.h
22generic-y += siginfo.h
23generic-y += socket.h
24generic-y += sockios.h
25generic-y += stat.h
26generic-y += statfs.h
27generic-y += swab.h
28generic-y += termbits.h
29generic-y += termios.h
30generic-y += types.h
31generic-y += ucontext.h 4generic-y += ucontext.h
diff --git a/arch/hexagon/include/uapi/asm/Kbuild b/arch/hexagon/include/uapi/asm/Kbuild
index 41a176dbb53e..c1b06dcf6cf8 100644
--- a/arch/hexagon/include/uapi/asm/Kbuild
+++ b/arch/hexagon/include/uapi/asm/Kbuild
@@ -1,27 +1,3 @@
1# UAPI Header export list
2include include/uapi/asm-generic/Kbuild.asm 1include include/uapi/asm-generic/Kbuild.asm
3 2
4generic-y += auxvec.h
5generic-y += bpf_perf_event.h
6generic-y += errno.h
7generic-y += fcntl.h
8generic-y += ioctl.h
9generic-y += ioctls.h
10generic-y += ipcbuf.h
11generic-y += mman.h
12generic-y += msgbuf.h
13generic-y += poll.h
14generic-y += posix_types.h
15generic-y += resource.h
16generic-y += sembuf.h
17generic-y += shmbuf.h
18generic-y += shmparam.h
19generic-y += siginfo.h
20generic-y += socket.h
21generic-y += sockios.h
22generic-y += stat.h
23generic-y += statfs.h
24generic-y += termbits.h
25generic-y += termios.h
26generic-y += types.h
27generic-y += ucontext.h 3generic-y += ucontext.h
diff --git a/arch/ia64/include/uapi/asm/Kbuild b/arch/ia64/include/uapi/asm/Kbuild
index ccce0ea65e05..5b819e53c397 100644
--- a/arch/ia64/include/uapi/asm/Kbuild
+++ b/arch/ia64/include/uapi/asm/Kbuild
@@ -1,11 +1,4 @@
1# UAPI Header export list
2include include/uapi/asm-generic/Kbuild.asm 1include include/uapi/asm-generic/Kbuild.asm
3 2
4generated-y += unistd_64.h 3generated-y += unistd_64.h
5generic-y += bpf_perf_event.h
6generic-y += ipcbuf.h
7generic-y += kvm_para.h 4generic-y += kvm_para.h
8generic-y += msgbuf.h
9generic-y += poll.h
10generic-y += sembuf.h
11generic-y += shmbuf.h
diff --git a/arch/m68k/include/uapi/asm/Kbuild b/arch/m68k/include/uapi/asm/Kbuild
index b6452910d7e1..960bf1e4be53 100644
--- a/arch/m68k/include/uapi/asm/Kbuild
+++ b/arch/m68k/include/uapi/asm/Kbuild
@@ -1,24 +1,4 @@
1# UAPI Header export list
2include include/uapi/asm-generic/Kbuild.asm 1include include/uapi/asm-generic/Kbuild.asm
3 2
4generated-y += unistd_32.h 3generated-y += unistd_32.h
5generic-y += auxvec.h
6generic-y += bitsperlong.h
7generic-y += bpf_perf_event.h
8generic-y += errno.h
9generic-y += ioctl.h
10generic-y += ipcbuf.h
11generic-y += kvm_para.h 4generic-y += kvm_para.h
12generic-y += mman.h
13generic-y += msgbuf.h
14generic-y += resource.h
15generic-y += sembuf.h
16generic-y += shmbuf.h
17generic-y += shmparam.h
18generic-y += siginfo.h
19generic-y += socket.h
20generic-y += sockios.h
21generic-y += statfs.h
22generic-y += termbits.h
23generic-y += termios.h
24generic-y += types.h
diff --git a/arch/microblaze/include/uapi/asm/Kbuild b/arch/microblaze/include/uapi/asm/Kbuild
index b6656d930a0e..97823ec46e97 100644
--- a/arch/microblaze/include/uapi/asm/Kbuild
+++ b/arch/microblaze/include/uapi/asm/Kbuild
@@ -1,31 +1,5 @@
1# UAPI Header export list
2include include/uapi/asm-generic/Kbuild.asm 1include include/uapi/asm-generic/Kbuild.asm
3 2
4generated-y += unistd_32.h 3generated-y += unistd_32.h
5generic-y += bitsperlong.h
6generic-y += bpf_perf_event.h
7generic-y += errno.h
8generic-y += fcntl.h
9generic-y += ioctl.h
10generic-y += ioctls.h
11generic-y += ipcbuf.h
12generic-y += kvm_para.h 4generic-y += kvm_para.h
13generic-y += mman.h
14generic-y += msgbuf.h
15generic-y += param.h
16generic-y += poll.h
17generic-y += resource.h
18generic-y += sembuf.h
19generic-y += shmbuf.h
20generic-y += shmparam.h
21generic-y += siginfo.h
22generic-y += signal.h
23generic-y += socket.h
24generic-y += sockios.h
25generic-y += stat.h
26generic-y += statfs.h
27generic-y += swab.h
28generic-y += termbits.h
29generic-y += termios.h
30generic-y += types.h
31generic-y += ucontext.h 5generic-y += ucontext.h
diff --git a/arch/mips/include/uapi/asm/Kbuild b/arch/mips/include/uapi/asm/Kbuild
index ed4bd032f456..0851c103a8ce 100644
--- a/arch/mips/include/uapi/asm/Kbuild
+++ b/arch/mips/include/uapi/asm/Kbuild
@@ -1,4 +1,3 @@
1# UAPI Header export list
2include include/uapi/asm-generic/Kbuild.asm 1include include/uapi/asm-generic/Kbuild.asm
3 2
4generated-y += unistd_n32.h 3generated-y += unistd_n32.h
@@ -7,5 +6,3 @@ generated-y += unistd_o32.h
7generated-y += unistd_nr_n32.h 6generated-y += unistd_nr_n32.h
8generated-y += unistd_nr_n64.h 7generated-y += unistd_nr_n64.h
9generated-y += unistd_nr_o32.h 8generated-y += unistd_nr_o32.h
10generic-y += bpf_perf_event.h
11generic-y += ipcbuf.h
diff --git a/arch/mips/kernel/jump_label.c b/arch/mips/kernel/jump_label.c
index 32e3168316cd..ab943927f97a 100644
--- a/arch/mips/kernel/jump_label.c
+++ b/arch/mips/kernel/jump_label.c
@@ -16,8 +16,6 @@
16#include <asm/cacheflush.h> 16#include <asm/cacheflush.h>
17#include <asm/inst.h> 17#include <asm/inst.h>
18 18
19#ifdef HAVE_JUMP_LABEL
20
21/* 19/*
22 * Define parameters for the standard MIPS and the microMIPS jump 20 * Define parameters for the standard MIPS and the microMIPS jump
23 * instruction encoding respectively: 21 * instruction encoding respectively:
@@ -70,5 +68,3 @@ void arch_jump_label_transform(struct jump_entry *e,
70 68
71 mutex_unlock(&text_mutex); 69 mutex_unlock(&text_mutex);
72} 70}
73
74#endif /* HAVE_JUMP_LABEL */
diff --git a/arch/nds32/include/asm/Kbuild b/arch/nds32/include/asm/Kbuild
index f81b633d5379..64ceff7ab99b 100644
--- a/arch/nds32/include/asm/Kbuild
+++ b/arch/nds32/include/asm/Kbuild
@@ -1,8 +1,6 @@
1generic-y += asm-offsets.h 1generic-y += asm-offsets.h
2generic-y += atomic.h 2generic-y += atomic.h
3generic-y += bitops.h 3generic-y += bitops.h
4generic-y += bitsperlong.h
5generic-y += bpf_perf_event.h
6generic-y += bug.h 4generic-y += bug.h
7generic-y += bugs.h 5generic-y += bugs.h
8generic-y += checksum.h 6generic-y += checksum.h
@@ -16,17 +14,12 @@ generic-y += div64.h
16generic-y += dma.h 14generic-y += dma.h
17generic-y += dma-mapping.h 15generic-y += dma-mapping.h
18generic-y += emergency-restart.h 16generic-y += emergency-restart.h
19generic-y += errno.h
20generic-y += exec.h 17generic-y += exec.h
21generic-y += export.h 18generic-y += export.h
22generic-y += fb.h 19generic-y += fb.h
23generic-y += fcntl.h
24generic-y += ftrace.h
25generic-y += gpio.h 20generic-y += gpio.h
26generic-y += hardirq.h 21generic-y += hardirq.h
27generic-y += hw_irq.h 22generic-y += hw_irq.h
28generic-y += ioctl.h
29generic-y += ioctls.h
30generic-y += irq.h 23generic-y += irq.h
31generic-y += irq_regs.h 24generic-y += irq_regs.h
32generic-y += irq_work.h 25generic-y += irq_work.h
@@ -38,7 +31,6 @@ generic-y += limits.h
38generic-y += local.h 31generic-y += local.h
39generic-y += local64.h 32generic-y += local64.h
40generic-y += mm-arch-hooks.h 33generic-y += mm-arch-hooks.h
41generic-y += mman.h
42generic-y += parport.h 34generic-y += parport.h
43generic-y += pci.h 35generic-y += pci.h
44generic-y += percpu.h 36generic-y += percpu.h
@@ -46,9 +38,7 @@ generic-y += preempt.h
46generic-y += sections.h 38generic-y += sections.h
47generic-y += segment.h 39generic-y += segment.h
48generic-y += serial.h 40generic-y += serial.h
49generic-y += shmbuf.h
50generic-y += sizes.h 41generic-y += sizes.h
51generic-y += stat.h
52generic-y += switch_to.h 42generic-y += switch_to.h
53generic-y += timex.h 43generic-y += timex.h
54generic-y += topology.h 44generic-y += topology.h
diff --git a/arch/nds32/include/uapi/asm/Kbuild b/arch/nds32/include/uapi/asm/Kbuild
index 40be972faf9e..c1b06dcf6cf8 100644
--- a/arch/nds32/include/uapi/asm/Kbuild
+++ b/arch/nds32/include/uapi/asm/Kbuild
@@ -1,29 +1,3 @@
1# UAPI Header export list
2include include/uapi/asm-generic/Kbuild.asm 1include include/uapi/asm-generic/Kbuild.asm
3 2
4generic-y += bpf_perf_event.h
5generic-y += errno.h
6generic-y += ioctl.h
7generic-y += ioctls.h
8generic-y += ipcbuf.h
9generic-y += shmbuf.h
10generic-y += bitsperlong.h
11generic-y += fcntl.h
12generic-y += stat.h
13generic-y += mman.h
14generic-y += msgbuf.h
15generic-y += poll.h
16generic-y += posix_types.h
17generic-y += resource.h
18generic-y += sembuf.h
19generic-y += setup.h
20generic-y += siginfo.h
21generic-y += signal.h
22generic-y += socket.h
23generic-y += sockios.h
24generic-y += swab.h
25generic-y += statfs.h
26generic-y += termbits.h
27generic-y += termios.h
28generic-y += types.h
29generic-y += ucontext.h 3generic-y += ucontext.h
diff --git a/arch/nios2/Kconfig b/arch/nios2/Kconfig
index f6c4b0f49997..532343eebf89 100644
--- a/arch/nios2/Kconfig
+++ b/arch/nios2/Kconfig
@@ -36,9 +36,6 @@ config GENERIC_CALIBRATE_DELAY
36config NO_IOPORT_MAP 36config NO_IOPORT_MAP
37 def_bool y 37 def_bool y
38 38
39config HAS_DMA
40 def_bool y
41
42config FPU 39config FPU
43 def_bool n 40 def_bool n
44 41
diff --git a/arch/nios2/include/uapi/asm/Kbuild b/arch/nios2/include/uapi/asm/Kbuild
index 13a3d77b4d7b..0febf1a07c30 100644
--- a/arch/nios2/include/uapi/asm/Kbuild
+++ b/arch/nios2/include/uapi/asm/Kbuild
@@ -1,30 +1,4 @@
1# UAPI Header export list
2include include/uapi/asm-generic/Kbuild.asm 1include include/uapi/asm-generic/Kbuild.asm
3 2
4generic-y += auxvec.h
5generic-y += bitsperlong.h
6generic-y += bpf_perf_event.h
7generic-y += errno.h
8generic-y += fcntl.h
9generic-y += ioctl.h
10generic-y += ioctls.h
11generic-y += ipcbuf.h
12generic-y += kvm_para.h 3generic-y += kvm_para.h
13generic-y += mman.h
14generic-y += msgbuf.h
15generic-y += param.h
16generic-y += poll.h
17generic-y += posix_types.h
18generic-y += resource.h
19generic-y += sembuf.h
20generic-y += setup.h
21generic-y += shmbuf.h
22generic-y += siginfo.h
23generic-y += socket.h
24generic-y += sockios.h
25generic-y += stat.h
26generic-y += statfs.h
27generic-y += termbits.h
28generic-y += termios.h
29generic-y += types.h
30generic-y += ucontext.h 4generic-y += ucontext.h
diff --git a/arch/openrisc/include/uapi/asm/Kbuild b/arch/openrisc/include/uapi/asm/Kbuild
index 130c16ccba0a..0febf1a07c30 100644
--- a/arch/openrisc/include/uapi/asm/Kbuild
+++ b/arch/openrisc/include/uapi/asm/Kbuild
@@ -1,32 +1,4 @@
1# UAPI Header export list
2include include/uapi/asm-generic/Kbuild.asm 1include include/uapi/asm-generic/Kbuild.asm
3 2
4generic-y += auxvec.h
5generic-y += bitsperlong.h
6generic-y += bpf_perf_event.h
7generic-y += errno.h
8generic-y += fcntl.h
9generic-y += ioctl.h
10generic-y += ioctls.h
11generic-y += ipcbuf.h
12generic-y += kvm_para.h 3generic-y += kvm_para.h
13generic-y += mman.h
14generic-y += msgbuf.h
15generic-y += poll.h
16generic-y += posix_types.h
17generic-y += resource.h
18generic-y += sembuf.h
19generic-y += setup.h
20generic-y += shmbuf.h
21generic-y += shmparam.h
22generic-y += siginfo.h
23generic-y += signal.h
24generic-y += socket.h
25generic-y += sockios.h
26generic-y += stat.h
27generic-y += statfs.h
28generic-y += swab.h
29generic-y += termbits.h
30generic-y += termios.h
31generic-y += types.h
32generic-y += ucontext.h 4generic-y += ucontext.h
diff --git a/arch/parisc/include/uapi/asm/Kbuild b/arch/parisc/include/uapi/asm/Kbuild
index d31b4261cafc..c54353d390ff 100644
--- a/arch/parisc/include/uapi/asm/Kbuild
+++ b/arch/parisc/include/uapi/asm/Kbuild
@@ -1,12 +1,5 @@
1# UAPI Header export list
2include include/uapi/asm-generic/Kbuild.asm 1include include/uapi/asm-generic/Kbuild.asm
3 2
4generated-y += unistd_32.h 3generated-y += unistd_32.h
5generated-y += unistd_64.h 4generated-y += unistd_64.h
6generic-y += auxvec.h
7generic-y += bpf_perf_event.h
8generic-y += kvm_para.h 5generic-y += kvm_para.h
9generic-y += param.h
10generic-y += poll.h
11generic-y += resource.h
12generic-y += siginfo.h
diff --git a/arch/powerpc/include/asm/asm-prototypes.h b/arch/powerpc/include/asm/asm-prototypes.h
index 6f201b199c02..1d911f68a23b 100644
--- a/arch/powerpc/include/asm/asm-prototypes.h
+++ b/arch/powerpc/include/asm/asm-prototypes.h
@@ -38,7 +38,7 @@ extern struct static_key hcall_tracepoint_key;
38void __trace_hcall_entry(unsigned long opcode, unsigned long *args); 38void __trace_hcall_entry(unsigned long opcode, unsigned long *args);
39void __trace_hcall_exit(long opcode, long retval, unsigned long *retbuf); 39void __trace_hcall_exit(long opcode, long retval, unsigned long *retbuf);
40/* OPAL tracing */ 40/* OPAL tracing */
41#ifdef HAVE_JUMP_LABEL 41#ifdef CONFIG_JUMP_LABEL
42extern struct static_key opal_tracepoint_key; 42extern struct static_key opal_tracepoint_key;
43#endif 43#endif
44 44
diff --git a/arch/powerpc/include/uapi/asm/Kbuild b/arch/powerpc/include/uapi/asm/Kbuild
index 8ab8ba1b71bc..214a39acdf25 100644
--- a/arch/powerpc/include/uapi/asm/Kbuild
+++ b/arch/powerpc/include/uapi/asm/Kbuild
@@ -1,11 +1,4 @@
1# UAPI Header export list
2include include/uapi/asm-generic/Kbuild.asm 1include include/uapi/asm-generic/Kbuild.asm
3 2
4generated-y += unistd_32.h 3generated-y += unistd_32.h
5generated-y += unistd_64.h 4generated-y += unistd_64.h
6generic-y += param.h
7generic-y += poll.h
8generic-y += resource.h
9generic-y += sockios.h
10generic-y += statfs.h
11generic-y += siginfo.h
diff --git a/arch/powerpc/kernel/jump_label.c b/arch/powerpc/kernel/jump_label.c
index 6472472093d0..0080c5fbd225 100644
--- a/arch/powerpc/kernel/jump_label.c
+++ b/arch/powerpc/kernel/jump_label.c
@@ -11,7 +11,6 @@
11#include <linux/jump_label.h> 11#include <linux/jump_label.h>
12#include <asm/code-patching.h> 12#include <asm/code-patching.h>
13 13
14#ifdef HAVE_JUMP_LABEL
15void arch_jump_label_transform(struct jump_entry *entry, 14void arch_jump_label_transform(struct jump_entry *entry,
16 enum jump_label_type type) 15 enum jump_label_type type)
17{ 16{
@@ -22,4 +21,3 @@ void arch_jump_label_transform(struct jump_entry *entry,
22 else 21 else
23 patch_instruction(addr, PPC_INST_NOP); 22 patch_instruction(addr, PPC_INST_NOP);
24} 23}
25#endif
diff --git a/arch/powerpc/platforms/powernv/opal-tracepoints.c b/arch/powerpc/platforms/powernv/opal-tracepoints.c
index 1ab7d26c0a2c..f16a43540e30 100644
--- a/arch/powerpc/platforms/powernv/opal-tracepoints.c
+++ b/arch/powerpc/platforms/powernv/opal-tracepoints.c
@@ -4,7 +4,7 @@
4#include <asm/trace.h> 4#include <asm/trace.h>
5#include <asm/asm-prototypes.h> 5#include <asm/asm-prototypes.h>
6 6
7#ifdef HAVE_JUMP_LABEL 7#ifdef CONFIG_JUMP_LABEL
8struct static_key opal_tracepoint_key = STATIC_KEY_INIT; 8struct static_key opal_tracepoint_key = STATIC_KEY_INIT;
9 9
10int opal_tracepoint_regfunc(void) 10int opal_tracepoint_regfunc(void)
diff --git a/arch/powerpc/platforms/powernv/opal-wrappers.S b/arch/powerpc/platforms/powernv/opal-wrappers.S
index 251528231a9e..f4875fe3f8ff 100644
--- a/arch/powerpc/platforms/powernv/opal-wrappers.S
+++ b/arch/powerpc/platforms/powernv/opal-wrappers.S
@@ -20,7 +20,7 @@
20 .section ".text" 20 .section ".text"
21 21
22#ifdef CONFIG_TRACEPOINTS 22#ifdef CONFIG_TRACEPOINTS
23#ifdef HAVE_JUMP_LABEL 23#ifdef CONFIG_JUMP_LABEL
24#define OPAL_BRANCH(LABEL) \ 24#define OPAL_BRANCH(LABEL) \
25 ARCH_STATIC_BRANCH(LABEL, opal_tracepoint_key) 25 ARCH_STATIC_BRANCH(LABEL, opal_tracepoint_key)
26#else 26#else
diff --git a/arch/powerpc/platforms/pseries/hvCall.S b/arch/powerpc/platforms/pseries/hvCall.S
index d91412c591ef..50dc9426d0be 100644
--- a/arch/powerpc/platforms/pseries/hvCall.S
+++ b/arch/powerpc/platforms/pseries/hvCall.S
@@ -19,7 +19,7 @@
19 19
20#ifdef CONFIG_TRACEPOINTS 20#ifdef CONFIG_TRACEPOINTS
21 21
22#ifndef HAVE_JUMP_LABEL 22#ifndef CONFIG_JUMP_LABEL
23 .section ".toc","aw" 23 .section ".toc","aw"
24 24
25 .globl hcall_tracepoint_refcount 25 .globl hcall_tracepoint_refcount
@@ -79,7 +79,7 @@ hcall_tracepoint_refcount:
79 mr r5,BUFREG; \ 79 mr r5,BUFREG; \
80 __HCALL_INST_POSTCALL 80 __HCALL_INST_POSTCALL
81 81
82#ifdef HAVE_JUMP_LABEL 82#ifdef CONFIG_JUMP_LABEL
83#define HCALL_BRANCH(LABEL) \ 83#define HCALL_BRANCH(LABEL) \
84 ARCH_STATIC_BRANCH(LABEL, hcall_tracepoint_key) 84 ARCH_STATIC_BRANCH(LABEL, hcall_tracepoint_key)
85#else 85#else
diff --git a/arch/powerpc/platforms/pseries/lpar.c b/arch/powerpc/platforms/pseries/lpar.c
index 32d4452973e7..f2a9f0adc2d3 100644
--- a/arch/powerpc/platforms/pseries/lpar.c
+++ b/arch/powerpc/platforms/pseries/lpar.c
@@ -1040,7 +1040,7 @@ EXPORT_SYMBOL(arch_free_page);
1040#endif /* CONFIG_PPC_BOOK3S_64 */ 1040#endif /* CONFIG_PPC_BOOK3S_64 */
1041 1041
1042#ifdef CONFIG_TRACEPOINTS 1042#ifdef CONFIG_TRACEPOINTS
1043#ifdef HAVE_JUMP_LABEL 1043#ifdef CONFIG_JUMP_LABEL
1044struct static_key hcall_tracepoint_key = STATIC_KEY_INIT; 1044struct static_key hcall_tracepoint_key = STATIC_KEY_INIT;
1045 1045
1046int hcall_tracepoint_regfunc(void) 1046int hcall_tracepoint_regfunc(void)
diff --git a/arch/riscv/include/asm/Kbuild b/arch/riscv/include/asm/Kbuild
index 6a646d9ea780..cccd12cf27d4 100644
--- a/arch/riscv/include/asm/Kbuild
+++ b/arch/riscv/include/asm/Kbuild
@@ -1,5 +1,4 @@
1generic-y += bugs.h 1generic-y += bugs.h
2generic-y += cacheflush.h
3generic-y += checksum.h 2generic-y += checksum.h
4generic-y += compat.h 3generic-y += compat.h
5generic-y += cputime.h 4generic-y += cputime.h
@@ -9,16 +8,11 @@ generic-y += dma.h
9generic-y += dma-contiguous.h 8generic-y += dma-contiguous.h
10generic-y += dma-mapping.h 9generic-y += dma-mapping.h
11generic-y += emergency-restart.h 10generic-y += emergency-restart.h
12generic-y += errno.h
13generic-y += exec.h 11generic-y += exec.h
14generic-y += fb.h 12generic-y += fb.h
15generic-y += fcntl.h
16generic-y += hardirq.h 13generic-y += hardirq.h
17generic-y += hash.h 14generic-y += hash.h
18generic-y += hw_irq.h 15generic-y += hw_irq.h
19generic-y += ioctl.h
20generic-y += ioctls.h
21generic-y += ipcbuf.h
22generic-y += irq_regs.h 16generic-y += irq_regs.h
23generic-y += irq_work.h 17generic-y += irq_work.h
24generic-y += kdebug.h 18generic-y += kdebug.h
@@ -27,34 +21,15 @@ generic-y += kvm_para.h
27generic-y += local.h 21generic-y += local.h
28generic-y += local64.h 22generic-y += local64.h
29generic-y += mm-arch-hooks.h 23generic-y += mm-arch-hooks.h
30generic-y += mman.h
31generic-y += module.h
32generic-y += msgbuf.h
33generic-y += mutex.h 24generic-y += mutex.h
34generic-y += param.h
35generic-y += percpu.h 25generic-y += percpu.h
36generic-y += poll.h
37generic-y += posix_types.h
38generic-y += preempt.h 26generic-y += preempt.h
39generic-y += resource.h
40generic-y += scatterlist.h 27generic-y += scatterlist.h
41generic-y += sections.h 28generic-y += sections.h
42generic-y += sembuf.h
43generic-y += serial.h 29generic-y += serial.h
44generic-y += setup.h
45generic-y += shmbuf.h
46generic-y += shmparam.h 30generic-y += shmparam.h
47generic-y += signal.h
48generic-y += socket.h
49generic-y += sockios.h
50generic-y += stat.h
51generic-y += statfs.h
52generic-y += swab.h
53generic-y += termbits.h
54generic-y += termios.h
55generic-y += topology.h 31generic-y += topology.h
56generic-y += trace_clock.h 32generic-y += trace_clock.h
57generic-y += types.h
58generic-y += unaligned.h 33generic-y += unaligned.h
59generic-y += user.h 34generic-y += user.h
60generic-y += vga.h 35generic-y += vga.h
diff --git a/arch/riscv/include/uapi/asm/Kbuild b/arch/riscv/include/uapi/asm/Kbuild
index 5511b9918131..d2ee86b4c091 100644
--- a/arch/riscv/include/uapi/asm/Kbuild
+++ b/arch/riscv/include/uapi/asm/Kbuild
@@ -1,29 +1 @@
1# UAPI Header export list
2include include/uapi/asm-generic/Kbuild.asm include include/uapi/asm-generic/Kbuild.asm
3
4generic-y += setup.h
5generic-y += unistd.h
6generic-y += bpf_perf_event.h
7generic-y += errno.h
8generic-y += fcntl.h
9generic-y += ioctl.h
10generic-y += ioctls.h
11generic-y += ipcbuf.h
12generic-y += mman.h
13generic-y += msgbuf.h
14generic-y += param.h
15generic-y += poll.h
16generic-y += posix_types.h
17generic-y += resource.h
18generic-y += sembuf.h
19generic-y += shmbuf.h
20generic-y += signal.h
21generic-y += socket.h
22generic-y += sockios.h
23generic-y += stat.h
24generic-y += statfs.h
25generic-y += swab.h
26generic-y += termbits.h
27generic-y += termios.h
28generic-y += types.h
29generic-y += siginfo.h
diff --git a/arch/s390/include/uapi/asm/Kbuild b/arch/s390/include/uapi/asm/Kbuild
index dc38a90cf091..da3e0d48abbc 100644
--- a/arch/s390/include/uapi/asm/Kbuild
+++ b/arch/s390/include/uapi/asm/Kbuild
@@ -1,21 +1,5 @@
1# SPDX-License-Identifier: GPL-2.0 1# SPDX-License-Identifier: GPL-2.0
2# UAPI Header export list
3include include/uapi/asm-generic/Kbuild.asm 2include include/uapi/asm-generic/Kbuild.asm
4 3
5generated-y += unistd_32.h 4generated-y += unistd_32.h
6generated-y += unistd_64.h 5generated-y += unistd_64.h
7
8generic-y += errno.h
9generic-y += fcntl.h
10generic-y += ioctl.h
11generic-y += mman.h
12generic-y += msgbuf.h
13generic-y += param.h
14generic-y += poll.h
15generic-y += resource.h
16generic-y += sembuf.h
17generic-y += shmbuf.h
18generic-y += sockios.h
19generic-y += swab.h
20generic-y += termbits.h
21generic-y += siginfo.h \ No newline at end of file
diff --git a/arch/s390/kernel/Makefile b/arch/s390/kernel/Makefile
index 386b1abb217b..e216e116a9a9 100644
--- a/arch/s390/kernel/Makefile
+++ b/arch/s390/kernel/Makefile
@@ -48,7 +48,7 @@ CFLAGS_ptrace.o += -DUTS_MACHINE='"$(UTS_MACHINE)"'
48obj-y := traps.o time.o process.o base.o early.o setup.o idle.o vtime.o 48obj-y := traps.o time.o process.o base.o early.o setup.o idle.o vtime.o
49obj-y += processor.o sys_s390.o ptrace.o signal.o cpcmd.o ebcdic.o nmi.o 49obj-y += processor.o sys_s390.o ptrace.o signal.o cpcmd.o ebcdic.o nmi.o
50obj-y += debug.o irq.o ipl.o dis.o diag.o vdso.o early_nobss.o 50obj-y += debug.o irq.o ipl.o dis.o diag.o vdso.o early_nobss.o
51obj-y += sysinfo.o jump_label.o lgr.o os_info.o machine_kexec.o pgm_check.o 51obj-y += sysinfo.o lgr.o os_info.o machine_kexec.o pgm_check.o
52obj-y += runtime_instr.o cache.o fpu.o dumpstack.o guarded_storage.o sthyi.o 52obj-y += runtime_instr.o cache.o fpu.o dumpstack.o guarded_storage.o sthyi.o
53obj-y += entry.o reipl.o relocate_kernel.o kdebugfs.o alternative.o 53obj-y += entry.o reipl.o relocate_kernel.o kdebugfs.o alternative.o
54obj-y += nospec-branch.o ipl_vmparm.o 54obj-y += nospec-branch.o ipl_vmparm.o
@@ -72,6 +72,7 @@ obj-$(CONFIG_KPROBES) += kprobes.o
72obj-$(CONFIG_FUNCTION_TRACER) += mcount.o ftrace.o 72obj-$(CONFIG_FUNCTION_TRACER) += mcount.o ftrace.o
73obj-$(CONFIG_CRASH_DUMP) += crash_dump.o 73obj-$(CONFIG_CRASH_DUMP) += crash_dump.o
74obj-$(CONFIG_UPROBES) += uprobes.o 74obj-$(CONFIG_UPROBES) += uprobes.o
75obj-$(CONFIG_JUMP_LABEL) += jump_label.o
75 76
76obj-$(CONFIG_KEXEC_FILE) += machine_kexec_file.o kexec_image.o 77obj-$(CONFIG_KEXEC_FILE) += machine_kexec_file.o kexec_image.o
77obj-$(CONFIG_KEXEC_FILE) += kexec_elf.o 78obj-$(CONFIG_KEXEC_FILE) += kexec_elf.o
diff --git a/arch/s390/kernel/jump_label.c b/arch/s390/kernel/jump_label.c
index 50a1798604a8..3f10b56bd5a3 100644
--- a/arch/s390/kernel/jump_label.c
+++ b/arch/s390/kernel/jump_label.c
@@ -10,8 +10,6 @@
10#include <linux/jump_label.h> 10#include <linux/jump_label.h>
11#include <asm/ipl.h> 11#include <asm/ipl.h>
12 12
13#ifdef HAVE_JUMP_LABEL
14
15struct insn { 13struct insn {
16 u16 opcode; 14 u16 opcode;
17 s32 offset; 15 s32 offset;
@@ -103,5 +101,3 @@ void arch_jump_label_transform_static(struct jump_entry *entry,
103{ 101{
104 __jump_label_transform(entry, type, 1); 102 __jump_label_transform(entry, type, 1);
105} 103}
106
107#endif
diff --git a/arch/s390/kernel/syscalls/Makefile b/arch/s390/kernel/syscalls/Makefile
index 4d929edc80a6..b98f25029b8e 100644
--- a/arch/s390/kernel/syscalls/Makefile
+++ b/arch/s390/kernel/syscalls/Makefile
@@ -24,17 +24,11 @@ uapi: $(uapi-hdrs-y)
24_dummy := $(shell [ -d '$(uapi)' ] || mkdir -p '$(uapi)') \ 24_dummy := $(shell [ -d '$(uapi)' ] || mkdir -p '$(uapi)') \
25 $(shell [ -d '$(kapi)' ] || mkdir -p '$(kapi)') 25 $(shell [ -d '$(kapi)' ] || mkdir -p '$(kapi)')
26 26
27define filechk_syshdr 27filechk_syshdr = $(CONFIG_SHELL) '$(systbl)' -H -a $(syshdr_abi_$(basetarget)) -f "$2" < $<
28 $(CONFIG_SHELL) '$(systbl)' -H -a $(syshdr_abi_$(basetarget)) -f "$2" < $<
29endef
30 28
31define filechk_sysnr 29filechk_sysnr = $(CONFIG_SHELL) '$(systbl)' -N -a $(sysnr_abi_$(basetarget)) < $<
32 $(CONFIG_SHELL) '$(systbl)' -N -a $(sysnr_abi_$(basetarget)) < $<
33endef
34 30
35define filechk_syscalls 31filechk_syscalls = $(CONFIG_SHELL) '$(systbl)' -S < $<
36 $(CONFIG_SHELL) '$(systbl)' -S < $<
37endef
38 32
39syshdr_abi_unistd_32 := common,32 33syshdr_abi_unistd_32 := common,32
40$(uapi)/unistd_32.h: $(syscall) FORCE 34$(uapi)/unistd_32.h: $(syscall) FORCE
diff --git a/arch/s390/tools/Makefile b/arch/s390/tools/Makefile
index 48cdac1143a9..2342b84b3386 100644
--- a/arch/s390/tools/Makefile
+++ b/arch/s390/tools/Makefile
@@ -20,13 +20,10 @@ HOSTCFLAGS_gen_opcode_table.o += -Wall $(LINUXINCLUDE)
20# Ensure output directory exists 20# Ensure output directory exists
21_dummy := $(shell [ -d '$(kapi)' ] || mkdir -p '$(kapi)') 21_dummy := $(shell [ -d '$(kapi)' ] || mkdir -p '$(kapi)')
22 22
23define filechk_facility-defs.h 23filechk_facility-defs.h = $(obj)/gen_facilities
24 $(obj)/gen_facilities
25endef
26 24
27define filechk_dis-defs.h 25filechk_dis-defs.h = \
28 ( $(obj)/gen_opcode_table < $(srctree)/arch/$(ARCH)/tools/opcodes.txt ) 26 $(obj)/gen_opcode_table < $(srctree)/arch/$(ARCH)/tools/opcodes.txt
29endef
30 27
31$(kapi)/facility-defs.h: $(obj)/gen_facilities FORCE 28$(kapi)/facility-defs.h: $(obj)/gen_facilities FORCE
32 $(call filechk,facility-defs.h) 29 $(call filechk,facility-defs.h)
diff --git a/arch/sh/include/uapi/asm/Kbuild b/arch/sh/include/uapi/asm/Kbuild
index dcb93543f55d..eaa30bcd93bf 100644
--- a/arch/sh/include/uapi/asm/Kbuild
+++ b/arch/sh/include/uapi/asm/Kbuild
@@ -1,25 +1,6 @@
1# SPDX-License-Identifier: GPL-2.0 1# SPDX-License-Identifier: GPL-2.0
2# UAPI Header export list
3include include/uapi/asm-generic/Kbuild.asm 2include include/uapi/asm-generic/Kbuild.asm
4 3
5generated-y += unistd_32.h 4generated-y += unistd_32.h
6generic-y += bitsperlong.h
7generic-y += bpf_perf_event.h
8generic-y += errno.h
9generic-y += fcntl.h
10generic-y += ioctl.h
11generic-y += ipcbuf.h
12generic-y += kvm_para.h 5generic-y += kvm_para.h
13generic-y += mman.h
14generic-y += msgbuf.h
15generic-y += param.h
16generic-y += poll.h
17generic-y += resource.h
18generic-y += sembuf.h
19generic-y += shmbuf.h
20generic-y += siginfo.h
21generic-y += socket.h
22generic-y += statfs.h
23generic-y += termbits.h
24generic-y += termios.h
25generic-y += ucontext.h 6generic-y += ucontext.h
diff --git a/arch/sh/tools/Makefile b/arch/sh/tools/Makefile
index 2082af1f3fef..e5ba31c79fe0 100644
--- a/arch/sh/tools/Makefile
+++ b/arch/sh/tools/Makefile
@@ -13,4 +13,4 @@
13include/generated/machtypes.h: $(src)/gen-mach-types $(src)/mach-types 13include/generated/machtypes.h: $(src)/gen-mach-types $(src)/mach-types
14 @echo ' Generating $@' 14 @echo ' Generating $@'
15 $(Q)mkdir -p $(dir $@) 15 $(Q)mkdir -p $(dir $@)
16 $(Q)LC_ALL=C $(AWK) -f $^ > $@ || { rm -f $@; /bin/false; } 16 $(Q)LC_ALL=C $(AWK) -f $^ > $@
diff --git a/arch/sparc/include/uapi/asm/Kbuild b/arch/sparc/include/uapi/asm/Kbuild
index ae72977287e3..214a39acdf25 100644
--- a/arch/sparc/include/uapi/asm/Kbuild
+++ b/arch/sparc/include/uapi/asm/Kbuild
@@ -1,7 +1,4 @@
1# UAPI Header export list
2include include/uapi/asm-generic/Kbuild.asm 1include include/uapi/asm-generic/Kbuild.asm
3 2
4generated-y += unistd_32.h 3generated-y += unistd_32.h
5generated-y += unistd_64.h 4generated-y += unistd_64.h
6generic-y += bpf_perf_event.h
7generic-y += types.h
diff --git a/arch/sparc/kernel/Makefile b/arch/sparc/kernel/Makefile
index cf8640841b7a..97c0e19263d1 100644
--- a/arch/sparc/kernel/Makefile
+++ b/arch/sparc/kernel/Makefile
@@ -118,4 +118,4 @@ pc--$(CONFIG_PERF_EVENTS) := perf_event.o
118obj-$(CONFIG_SPARC64) += $(pc--y) 118obj-$(CONFIG_SPARC64) += $(pc--y)
119 119
120obj-$(CONFIG_UPROBES) += uprobes.o 120obj-$(CONFIG_UPROBES) += uprobes.o
121obj-$(CONFIG_SPARC64) += jump_label.o 121obj-$(CONFIG_JUMP_LABEL) += jump_label.o
diff --git a/arch/sparc/kernel/jump_label.c b/arch/sparc/kernel/jump_label.c
index 7f8eac51df33..a4cfaeecaf5e 100644
--- a/arch/sparc/kernel/jump_label.c
+++ b/arch/sparc/kernel/jump_label.c
@@ -9,8 +9,6 @@
9 9
10#include <asm/cacheflush.h> 10#include <asm/cacheflush.h>
11 11
12#ifdef HAVE_JUMP_LABEL
13
14void arch_jump_label_transform(struct jump_entry *entry, 12void arch_jump_label_transform(struct jump_entry *entry,
15 enum jump_label_type type) 13 enum jump_label_type type)
16{ 14{
@@ -47,5 +45,3 @@ void arch_jump_label_transform(struct jump_entry *entry,
47 flushi(insn); 45 flushi(insn);
48 mutex_unlock(&text_mutex); 46 mutex_unlock(&text_mutex);
49} 47}
50
51#endif
diff --git a/arch/unicore32/include/uapi/asm/Kbuild b/arch/unicore32/include/uapi/asm/Kbuild
index 8611ef980554..0febf1a07c30 100644
--- a/arch/unicore32/include/uapi/asm/Kbuild
+++ b/arch/unicore32/include/uapi/asm/Kbuild
@@ -1,33 +1,4 @@
1# UAPI Header export list
2include include/uapi/asm-generic/Kbuild.asm 1include include/uapi/asm-generic/Kbuild.asm
3 2
4generic-y += auxvec.h
5generic-y += bitsperlong.h
6generic-y += bpf_perf_event.h
7generic-y += errno.h
8generic-y += fcntl.h
9generic-y += ioctl.h
10generic-y += ioctls.h
11generic-y += ipcbuf.h
12generic-y += kvm_para.h 3generic-y += kvm_para.h
13generic-y += mman.h
14generic-y += msgbuf.h
15generic-y += param.h
16generic-y += poll.h
17generic-y += posix_types.h
18generic-y += resource.h
19generic-y += sembuf.h
20generic-y += setup.h
21generic-y += shmbuf.h
22generic-y += shmparam.h
23generic-y += siginfo.h
24generic-y += signal.h
25generic-y += socket.h
26generic-y += sockios.h
27generic-y += stat.h
28generic-y += statfs.h
29generic-y += swab.h
30generic-y += termbits.h
31generic-y += termios.h
32generic-y += types.h
33generic-y += ucontext.h 4generic-y += ucontext.h
diff --git a/arch/x86/Makefile b/arch/x86/Makefile
index 16c3145c0a5f..9c5a67d1b9c1 100644
--- a/arch/x86/Makefile
+++ b/arch/x86/Makefile
@@ -289,7 +289,7 @@ vdso_install:
289 289
290archprepare: checkbin 290archprepare: checkbin
291checkbin: 291checkbin:
292ifndef CC_HAVE_ASM_GOTO 292ifndef CONFIG_CC_HAS_ASM_GOTO
293 @echo Compiler lacks asm-goto support. 293 @echo Compiler lacks asm-goto support.
294 @exit 1 294 @exit 1
295endif 295endif
diff --git a/arch/x86/boot/compressed/Makefile b/arch/x86/boot/compressed/Makefile
index 466f66c8a7f8..f0515ac895a4 100644
--- a/arch/x86/boot/compressed/Makefile
+++ b/arch/x86/boot/compressed/Makefile
@@ -151,7 +151,7 @@ suffix-$(CONFIG_KERNEL_LZO) := lzo
151suffix-$(CONFIG_KERNEL_LZ4) := lz4 151suffix-$(CONFIG_KERNEL_LZ4) := lz4
152 152
153quiet_cmd_mkpiggy = MKPIGGY $@ 153quiet_cmd_mkpiggy = MKPIGGY $@
154 cmd_mkpiggy = $(obj)/mkpiggy $< > $@ || ( rm -f $@ ; false ) 154 cmd_mkpiggy = $(obj)/mkpiggy $< > $@
155 155
156targets += piggy.S 156targets += piggy.S
157$(obj)/piggy.S: $(obj)/vmlinux.bin.$(suffix-y) $(obj)/mkpiggy FORCE 157$(obj)/piggy.S: $(obj)/vmlinux.bin.$(suffix-y) $(obj)/mkpiggy FORCE
diff --git a/arch/x86/entry/calling.h b/arch/x86/entry/calling.h
index 20d0885b00fb..efb0d1b1f15f 100644
--- a/arch/x86/entry/calling.h
+++ b/arch/x86/entry/calling.h
@@ -351,7 +351,7 @@ For 32-bit we have the following conventions - kernel is built with
351 */ 351 */
352.macro CALL_enter_from_user_mode 352.macro CALL_enter_from_user_mode
353#ifdef CONFIG_CONTEXT_TRACKING 353#ifdef CONFIG_CONTEXT_TRACKING
354#ifdef HAVE_JUMP_LABEL 354#ifdef CONFIG_JUMP_LABEL
355 STATIC_JUMP_IF_FALSE .Lafter_call_\@, context_tracking_enabled, def=0 355 STATIC_JUMP_IF_FALSE .Lafter_call_\@, context_tracking_enabled, def=0
356#endif 356#endif
357 call enter_from_user_mode 357 call enter_from_user_mode
diff --git a/arch/x86/include/asm/cpufeature.h b/arch/x86/include/asm/cpufeature.h
index aced6c9290d6..ce95b8cbd229 100644
--- a/arch/x86/include/asm/cpufeature.h
+++ b/arch/x86/include/asm/cpufeature.h
@@ -140,7 +140,7 @@ extern void clear_cpu_cap(struct cpuinfo_x86 *c, unsigned int bit);
140 140
141#define setup_force_cpu_bug(bit) setup_force_cpu_cap(bit) 141#define setup_force_cpu_bug(bit) setup_force_cpu_cap(bit)
142 142
143#if defined(__clang__) && !defined(CC_HAVE_ASM_GOTO) 143#if defined(__clang__) && !defined(CONFIG_CC_HAS_ASM_GOTO)
144 144
145/* 145/*
146 * Workaround for the sake of BPF compilation which utilizes kernel 146 * Workaround for the sake of BPF compilation which utilizes kernel
diff --git a/arch/x86/include/asm/jump_label.h b/arch/x86/include/asm/jump_label.h
index 21efc9d07ed9..65191ce8e1cf 100644
--- a/arch/x86/include/asm/jump_label.h
+++ b/arch/x86/include/asm/jump_label.h
@@ -2,19 +2,6 @@
2#ifndef _ASM_X86_JUMP_LABEL_H 2#ifndef _ASM_X86_JUMP_LABEL_H
3#define _ASM_X86_JUMP_LABEL_H 3#define _ASM_X86_JUMP_LABEL_H
4 4
5#ifndef HAVE_JUMP_LABEL
6/*
7 * For better or for worse, if jump labels (the gcc extension) are missing,
8 * then the entire static branch patching infrastructure is compiled out.
9 * If that happens, the code in here will malfunction. Raise a compiler
10 * error instead.
11 *
12 * In theory, jump labels and the static branch patching infrastructure
13 * could be decoupled to fix this.
14 */
15#error asm/jump_label.h included on a non-jump-label kernel
16#endif
17
18#define JUMP_LABEL_NOP_SIZE 5 5#define JUMP_LABEL_NOP_SIZE 5
19 6
20#ifdef CONFIG_X86_64 7#ifdef CONFIG_X86_64
diff --git a/arch/x86/include/asm/rmwcc.h b/arch/x86/include/asm/rmwcc.h
index 46ac84b506f5..8a9eba191516 100644
--- a/arch/x86/include/asm/rmwcc.h
+++ b/arch/x86/include/asm/rmwcc.h
@@ -11,7 +11,7 @@
11 11
12#define __CLOBBERS_MEM(clb...) "memory", ## clb 12#define __CLOBBERS_MEM(clb...) "memory", ## clb
13 13
14#if !defined(__GCC_ASM_FLAG_OUTPUTS__) && defined(CC_HAVE_ASM_GOTO) 14#if !defined(__GCC_ASM_FLAG_OUTPUTS__) && defined(CONFIG_CC_HAS_ASM_GOTO)
15 15
16/* Use asm goto */ 16/* Use asm goto */
17 17
@@ -27,7 +27,7 @@ cc_label: c = true; \
27 c; \ 27 c; \
28}) 28})
29 29
30#else /* defined(__GCC_ASM_FLAG_OUTPUTS__) || !defined(CC_HAVE_ASM_GOTO) */ 30#else /* defined(__GCC_ASM_FLAG_OUTPUTS__) || !defined(CONFIG_CC_HAS_ASM_GOTO) */
31 31
32/* Use flags output or a set instruction */ 32/* Use flags output or a set instruction */
33 33
@@ -40,7 +40,7 @@ cc_label: c = true; \
40 c; \ 40 c; \
41}) 41})
42 42
43#endif /* defined(__GCC_ASM_FLAG_OUTPUTS__) || !defined(CC_HAVE_ASM_GOTO) */ 43#endif /* defined(__GCC_ASM_FLAG_OUTPUTS__) || !defined(CONFIG_CC_HAS_ASM_GOTO) */
44 44
45#define GEN_UNARY_RMWcc_4(op, var, cc, arg0) \ 45#define GEN_UNARY_RMWcc_4(op, var, cc, arg0) \
46 __GEN_RMWcc(op " " arg0, var, cc, __CLOBBERS_MEM()) 46 __GEN_RMWcc(op " " arg0, var, cc, __CLOBBERS_MEM())
diff --git a/arch/x86/include/uapi/asm/Kbuild b/arch/x86/include/uapi/asm/Kbuild
index 322681622d1e..f6648e9928b3 100644
--- a/arch/x86/include/uapi/asm/Kbuild
+++ b/arch/x86/include/uapi/asm/Kbuild
@@ -1,8 +1,5 @@
1# UAPI Header export list
2include include/uapi/asm-generic/Kbuild.asm 1include include/uapi/asm-generic/Kbuild.asm
3 2
4generic-y += bpf_perf_event.h
5generated-y += unistd_32.h 3generated-y += unistd_32.h
6generated-y += unistd_64.h 4generated-y += unistd_64.h
7generated-y += unistd_x32.h 5generated-y += unistd_x32.h
8generic-y += poll.h
diff --git a/arch/x86/kernel/Makefile b/arch/x86/kernel/Makefile
index eb51b0e1189c..00b7e27bc2b7 100644
--- a/arch/x86/kernel/Makefile
+++ b/arch/x86/kernel/Makefile
@@ -49,7 +49,8 @@ obj-$(CONFIG_COMPAT) += signal_compat.o
49obj-y += traps.o idt.o irq.o irq_$(BITS).o dumpstack_$(BITS).o 49obj-y += traps.o idt.o irq.o irq_$(BITS).o dumpstack_$(BITS).o
50obj-y += time.o ioport.o dumpstack.o nmi.o 50obj-y += time.o ioport.o dumpstack.o nmi.o
51obj-$(CONFIG_MODIFY_LDT_SYSCALL) += ldt.o 51obj-$(CONFIG_MODIFY_LDT_SYSCALL) += ldt.o
52obj-y += setup.o x86_init.o i8259.o irqinit.o jump_label.o 52obj-y += setup.o x86_init.o i8259.o irqinit.o
53obj-$(CONFIG_JUMP_LABEL) += jump_label.o
53obj-$(CONFIG_IRQ_WORK) += irq_work.o 54obj-$(CONFIG_IRQ_WORK) += irq_work.o
54obj-y += probe_roms.o 55obj-y += probe_roms.o
55obj-$(CONFIG_X86_64) += sys_x86_64.o 56obj-$(CONFIG_X86_64) += sys_x86_64.o
diff --git a/arch/x86/kernel/jump_label.c b/arch/x86/kernel/jump_label.c
index aac0c1f7e354..f99bd26bd3f1 100644
--- a/arch/x86/kernel/jump_label.c
+++ b/arch/x86/kernel/jump_label.c
@@ -16,8 +16,6 @@
16#include <asm/alternative.h> 16#include <asm/alternative.h>
17#include <asm/text-patching.h> 17#include <asm/text-patching.h>
18 18
19#ifdef HAVE_JUMP_LABEL
20
21union jump_code_union { 19union jump_code_union {
22 char code[JUMP_LABEL_NOP_SIZE]; 20 char code[JUMP_LABEL_NOP_SIZE];
23 struct { 21 struct {
@@ -130,5 +128,3 @@ __init_or_module void arch_jump_label_transform_static(struct jump_entry *entry,
130 if (jlstate == JL_STATE_UPDATE) 128 if (jlstate == JL_STATE_UPDATE)
131 __jump_label_transform(entry, type, text_poke_early, 1); 129 __jump_label_transform(entry, type, text_poke_early, 1);
132} 130}
133
134#endif
diff --git a/arch/x86/kvm/emulate.c b/arch/x86/kvm/emulate.c
index 78e430f4e15c..c338984c850d 100644
--- a/arch/x86/kvm/emulate.c
+++ b/arch/x86/kvm/emulate.c
@@ -456,7 +456,7 @@ FOP_END;
456 456
457/* 457/*
458 * XXX: inoutclob user must know where the argument is being expanded. 458 * XXX: inoutclob user must know where the argument is being expanded.
459 * Relying on CC_HAVE_ASM_GOTO would allow us to remove _fault. 459 * Relying on CONFIG_CC_HAS_ASM_GOTO would allow us to remove _fault.
460 */ 460 */
461#define asm_safe(insn, inoutclob...) \ 461#define asm_safe(insn, inoutclob...) \
462({ \ 462({ \
diff --git a/arch/x86/lib/Makefile b/arch/x86/lib/Makefile
index ce28829f1281..140e61843a07 100644
--- a/arch/x86/lib/Makefile
+++ b/arch/x86/lib/Makefile
@@ -9,7 +9,7 @@ KCOV_INSTRUMENT_delay.o := n
9inat_tables_script = $(srctree)/arch/x86/tools/gen-insn-attr-x86.awk 9inat_tables_script = $(srctree)/arch/x86/tools/gen-insn-attr-x86.awk
10inat_tables_maps = $(srctree)/arch/x86/lib/x86-opcode-map.txt 10inat_tables_maps = $(srctree)/arch/x86/lib/x86-opcode-map.txt
11quiet_cmd_inat_tables = GEN $@ 11quiet_cmd_inat_tables = GEN $@
12 cmd_inat_tables = $(AWK) -f $(inat_tables_script) $(inat_tables_maps) > $@ || rm -f $@ 12 cmd_inat_tables = $(AWK) -f $(inat_tables_script) $(inat_tables_maps) > $@
13 13
14$(obj)/inat-tables.c: $(inat_tables_script) $(inat_tables_maps) 14$(obj)/inat-tables.c: $(inat_tables_script) $(inat_tables_maps)
15 $(call cmd,inat_tables) 15 $(call cmd,inat_tables)
diff --git a/arch/xtensa/include/uapi/asm/Kbuild b/arch/xtensa/include/uapi/asm/Kbuild
index f95cad300369..960bf1e4be53 100644
--- a/arch/xtensa/include/uapi/asm/Kbuild
+++ b/arch/xtensa/include/uapi/asm/Kbuild
@@ -1,14 +1,4 @@
1# UAPI Header export list
2include include/uapi/asm-generic/Kbuild.asm 1include include/uapi/asm-generic/Kbuild.asm
3 2
4generated-y += unistd_32.h 3generated-y += unistd_32.h
5generic-y += bitsperlong.h
6generic-y += bpf_perf_event.h
7generic-y += errno.h
8generic-y += fcntl.h
9generic-y += ioctl.h
10generic-y += kvm_para.h 4generic-y += kvm_para.h
11generic-y += resource.h
12generic-y += siginfo.h
13generic-y += statfs.h
14generic-y += termios.h
diff --git a/arch/xtensa/kernel/jump_label.c b/arch/xtensa/kernel/jump_label.c
index d108f721c116..61cf6497a646 100644
--- a/arch/xtensa/kernel/jump_label.c
+++ b/arch/xtensa/kernel/jump_label.c
@@ -10,8 +10,6 @@
10 10
11#include <asm/cacheflush.h> 11#include <asm/cacheflush.h>
12 12
13#ifdef HAVE_JUMP_LABEL
14
15#define J_OFFSET_MASK 0x0003ffff 13#define J_OFFSET_MASK 0x0003ffff
16#define J_SIGN_MASK (~(J_OFFSET_MASK >> 1)) 14#define J_SIGN_MASK (~(J_OFFSET_MASK >> 1))
17 15
@@ -95,5 +93,3 @@ void arch_jump_label_transform(struct jump_entry *e,
95 93
96 patch_text(jump_entry_code(e), &insn, JUMP_LABEL_NOP_SIZE); 94 patch_text(jump_entry_code(e), &insn, JUMP_LABEL_NOP_SIZE);
97} 95}
98
99#endif /* HAVE_JUMP_LABEL */
diff --git a/certs/Makefile b/certs/Makefile
index 5d0999b9e21b..f4c25b67aad9 100644
--- a/certs/Makefile
+++ b/certs/Makefile
@@ -22,7 +22,7 @@ $(obj)/system_certificates.o: $(obj)/x509_certificate_list
22AFLAGS_system_certificates.o := -I$(srctree) 22AFLAGS_system_certificates.o := -I$(srctree)
23 23
24quiet_cmd_extract_certs = EXTRACT_CERTS $(patsubst "%",%,$(2)) 24quiet_cmd_extract_certs = EXTRACT_CERTS $(patsubst "%",%,$(2))
25 cmd_extract_certs = scripts/extract-cert $(2) $@ || ( rm $@; exit 1) 25 cmd_extract_certs = scripts/extract-cert $(2) $@
26 26
27targets += x509_certificate_list 27targets += x509_certificate_list
28$(obj)/x509_certificate_list: scripts/extract-cert $(SYSTEM_TRUSTED_KEYS_SRCPREFIX)$(SYSTEM_TRUSTED_KEYS_FILENAME) FORCE 28$(obj)/x509_certificate_list: scripts/extract-cert $(SYSTEM_TRUSTED_KEYS_SRCPREFIX)$(SYSTEM_TRUSTED_KEYS_FILENAME) FORCE
diff --git a/firmware/Makefile b/firmware/Makefile
index e2f7dd2f30e0..37e5ae387400 100644
--- a/firmware/Makefile
+++ b/firmware/Makefile
@@ -13,7 +13,7 @@ ASM_WORD = $(if $(CONFIG_64BIT),.quad,.long)
13ASM_ALIGN = $(if $(CONFIG_64BIT),3,2) 13ASM_ALIGN = $(if $(CONFIG_64BIT),3,2)
14PROGBITS = $(if $(CONFIG_ARM),%,@)progbits 14PROGBITS = $(if $(CONFIG_ARM),%,@)progbits
15 15
16filechk_fwbin = { \ 16filechk_fwbin = \
17 echo "/* Generated by $(src)/Makefile */" ;\ 17 echo "/* Generated by $(src)/Makefile */" ;\
18 echo " .section .rodata" ;\ 18 echo " .section .rodata" ;\
19 echo " .p2align $(ASM_ALIGN)" ;\ 19 echo " .p2align $(ASM_ALIGN)" ;\
@@ -28,8 +28,7 @@ filechk_fwbin = { \
28 echo " .p2align $(ASM_ALIGN)" ;\ 28 echo " .p2align $(ASM_ALIGN)" ;\
29 echo " $(ASM_WORD) _fw_$(FWSTR)_name" ;\ 29 echo " $(ASM_WORD) _fw_$(FWSTR)_name" ;\
30 echo " $(ASM_WORD) _fw_$(FWSTR)_bin" ;\ 30 echo " $(ASM_WORD) _fw_$(FWSTR)_bin" ;\
31 echo " $(ASM_WORD) _fw_end - _fw_$(FWSTR)_bin" ;\ 31 echo " $(ASM_WORD) _fw_end - _fw_$(FWSTR)_bin"
32}
33 32
34$(obj)/%.gen.S: FORCE 33$(obj)/%.gen.S: FORCE
35 $(call filechk,fwbin) 34 $(call filechk,fwbin)
diff --git a/include/linux/dynamic_debug.h b/include/linux/dynamic_debug.h
index 2fd8006153c3..b3419da1a776 100644
--- a/include/linux/dynamic_debug.h
+++ b/include/linux/dynamic_debug.h
@@ -2,7 +2,7 @@
2#ifndef _DYNAMIC_DEBUG_H 2#ifndef _DYNAMIC_DEBUG_H
3#define _DYNAMIC_DEBUG_H 3#define _DYNAMIC_DEBUG_H
4 4
5#if defined(CC_HAVE_ASM_GOTO) && defined(CONFIG_JUMP_LABEL) 5#if defined(CONFIG_JUMP_LABEL)
6#include <linux/jump_label.h> 6#include <linux/jump_label.h>
7#endif 7#endif
8 8
@@ -38,7 +38,7 @@ struct _ddebug {
38#define _DPRINTK_FLAGS_DEFAULT 0 38#define _DPRINTK_FLAGS_DEFAULT 0
39#endif 39#endif
40 unsigned int flags:8; 40 unsigned int flags:8;
41#ifdef HAVE_JUMP_LABEL 41#ifdef CONFIG_JUMP_LABEL
42 union { 42 union {
43 struct static_key_true dd_key_true; 43 struct static_key_true dd_key_true;
44 struct static_key_false dd_key_false; 44 struct static_key_false dd_key_false;
@@ -83,7 +83,7 @@ void __dynamic_netdev_dbg(struct _ddebug *descriptor,
83 dd_key_init(key, init) \ 83 dd_key_init(key, init) \
84 } 84 }
85 85
86#ifdef HAVE_JUMP_LABEL 86#ifdef CONFIG_JUMP_LABEL
87 87
88#define dd_key_init(key, init) key = (init) 88#define dd_key_init(key, init) key = (init)
89 89
diff --git a/include/linux/jump_label.h b/include/linux/jump_label.h
index 5df6a621e464..3e113a1fa0f1 100644
--- a/include/linux/jump_label.h
+++ b/include/linux/jump_label.h
@@ -71,10 +71,6 @@
71 * Additional babbling in: Documentation/static-keys.txt 71 * Additional babbling in: Documentation/static-keys.txt
72 */ 72 */
73 73
74#if defined(CC_HAVE_ASM_GOTO) && defined(CONFIG_JUMP_LABEL)
75# define HAVE_JUMP_LABEL
76#endif
77
78#ifndef __ASSEMBLY__ 74#ifndef __ASSEMBLY__
79 75
80#include <linux/types.h> 76#include <linux/types.h>
@@ -86,7 +82,7 @@ extern bool static_key_initialized;
86 "%s(): static key '%pS' used before call to jump_label_init()", \ 82 "%s(): static key '%pS' used before call to jump_label_init()", \
87 __func__, (key)) 83 __func__, (key))
88 84
89#ifdef HAVE_JUMP_LABEL 85#ifdef CONFIG_JUMP_LABEL
90 86
91struct static_key { 87struct static_key {
92 atomic_t enabled; 88 atomic_t enabled;
@@ -114,10 +110,10 @@ struct static_key {
114struct static_key { 110struct static_key {
115 atomic_t enabled; 111 atomic_t enabled;
116}; 112};
117#endif /* HAVE_JUMP_LABEL */ 113#endif /* CONFIG_JUMP_LABEL */
118#endif /* __ASSEMBLY__ */ 114#endif /* __ASSEMBLY__ */
119 115
120#ifdef HAVE_JUMP_LABEL 116#ifdef CONFIG_JUMP_LABEL
121#include <asm/jump_label.h> 117#include <asm/jump_label.h>
122 118
123#ifndef __ASSEMBLY__ 119#ifndef __ASSEMBLY__
@@ -192,7 +188,7 @@ enum jump_label_type {
192 188
193struct module; 189struct module;
194 190
195#ifdef HAVE_JUMP_LABEL 191#ifdef CONFIG_JUMP_LABEL
196 192
197#define JUMP_TYPE_FALSE 0UL 193#define JUMP_TYPE_FALSE 0UL
198#define JUMP_TYPE_TRUE 1UL 194#define JUMP_TYPE_TRUE 1UL
@@ -245,7 +241,7 @@ extern void static_key_disable_cpuslocked(struct static_key *key);
245 { .enabled = { 0 }, \ 241 { .enabled = { 0 }, \
246 { .entries = (void *)JUMP_TYPE_FALSE } } 242 { .entries = (void *)JUMP_TYPE_FALSE } }
247 243
248#else /* !HAVE_JUMP_LABEL */ 244#else /* !CONFIG_JUMP_LABEL */
249 245
250#include <linux/atomic.h> 246#include <linux/atomic.h>
251#include <linux/bug.h> 247#include <linux/bug.h>
@@ -330,7 +326,7 @@ static inline void static_key_disable(struct static_key *key)
330#define STATIC_KEY_INIT_TRUE { .enabled = ATOMIC_INIT(1) } 326#define STATIC_KEY_INIT_TRUE { .enabled = ATOMIC_INIT(1) }
331#define STATIC_KEY_INIT_FALSE { .enabled = ATOMIC_INIT(0) } 327#define STATIC_KEY_INIT_FALSE { .enabled = ATOMIC_INIT(0) }
332 328
333#endif /* HAVE_JUMP_LABEL */ 329#endif /* CONFIG_JUMP_LABEL */
334 330
335#define STATIC_KEY_INIT STATIC_KEY_INIT_FALSE 331#define STATIC_KEY_INIT STATIC_KEY_INIT_FALSE
336#define jump_label_enabled static_key_enabled 332#define jump_label_enabled static_key_enabled
@@ -394,7 +390,7 @@ extern bool ____wrong_branch_error(void);
394 static_key_count((struct static_key *)x) > 0; \ 390 static_key_count((struct static_key *)x) > 0; \
395}) 391})
396 392
397#ifdef HAVE_JUMP_LABEL 393#ifdef CONFIG_JUMP_LABEL
398 394
399/* 395/*
400 * Combine the right initial value (type) with the right branch order 396 * Combine the right initial value (type) with the right branch order
@@ -476,12 +472,12 @@ extern bool ____wrong_branch_error(void);
476 unlikely(branch); \ 472 unlikely(branch); \
477}) 473})
478 474
479#else /* !HAVE_JUMP_LABEL */ 475#else /* !CONFIG_JUMP_LABEL */
480 476
481#define static_branch_likely(x) likely(static_key_enabled(&(x)->key)) 477#define static_branch_likely(x) likely(static_key_enabled(&(x)->key))
482#define static_branch_unlikely(x) unlikely(static_key_enabled(&(x)->key)) 478#define static_branch_unlikely(x) unlikely(static_key_enabled(&(x)->key))
483 479
484#endif /* HAVE_JUMP_LABEL */ 480#endif /* CONFIG_JUMP_LABEL */
485 481
486/* 482/*
487 * Advanced usage; refcount, branch is enabled when: count != 0 483 * Advanced usage; refcount, branch is enabled when: count != 0
diff --git a/include/linux/jump_label_ratelimit.h b/include/linux/jump_label_ratelimit.h
index baa8eabbaa56..a49f2b45b3f0 100644
--- a/include/linux/jump_label_ratelimit.h
+++ b/include/linux/jump_label_ratelimit.h
@@ -5,21 +5,19 @@
5#include <linux/jump_label.h> 5#include <linux/jump_label.h>
6#include <linux/workqueue.h> 6#include <linux/workqueue.h>
7 7
8#if defined(CC_HAVE_ASM_GOTO) && defined(CONFIG_JUMP_LABEL) 8#if defined(CONFIG_JUMP_LABEL)
9struct static_key_deferred { 9struct static_key_deferred {
10 struct static_key key; 10 struct static_key key;
11 unsigned long timeout; 11 unsigned long timeout;
12 struct delayed_work work; 12 struct delayed_work work;
13}; 13};
14#endif
15 14
16#ifdef HAVE_JUMP_LABEL
17extern void static_key_slow_dec_deferred(struct static_key_deferred *key); 15extern void static_key_slow_dec_deferred(struct static_key_deferred *key);
18extern void static_key_deferred_flush(struct static_key_deferred *key); 16extern void static_key_deferred_flush(struct static_key_deferred *key);
19extern void 17extern void
20jump_label_rate_limit(struct static_key_deferred *key, unsigned long rl); 18jump_label_rate_limit(struct static_key_deferred *key, unsigned long rl);
21 19
22#else /* !HAVE_JUMP_LABEL */ 20#else /* !CONFIG_JUMP_LABEL */
23struct static_key_deferred { 21struct static_key_deferred {
24 struct static_key key; 22 struct static_key key;
25}; 23};
@@ -38,5 +36,5 @@ jump_label_rate_limit(struct static_key_deferred *key,
38{ 36{
39 STATIC_KEY_CHECK_USE(key); 37 STATIC_KEY_CHECK_USE(key);
40} 38}
41#endif /* HAVE_JUMP_LABEL */ 39#endif /* CONFIG_JUMP_LABEL */
42#endif /* _LINUX_JUMP_LABEL_RATELIMIT_H */ 40#endif /* _LINUX_JUMP_LABEL_RATELIMIT_H */
diff --git a/include/linux/module.h b/include/linux/module.h
index d5453eb5a68b..9a21fe3509af 100644
--- a/include/linux/module.h
+++ b/include/linux/module.h
@@ -436,7 +436,7 @@ struct module {
436 unsigned int num_bpf_raw_events; 436 unsigned int num_bpf_raw_events;
437 struct bpf_raw_event_map *bpf_raw_events; 437 struct bpf_raw_event_map *bpf_raw_events;
438#endif 438#endif
439#ifdef HAVE_JUMP_LABEL 439#ifdef CONFIG_JUMP_LABEL
440 struct jump_entry *jump_entries; 440 struct jump_entry *jump_entries;
441 unsigned int num_jump_entries; 441 unsigned int num_jump_entries;
442#endif 442#endif
diff --git a/include/linux/netfilter.h b/include/linux/netfilter.h
index bbe99d2b28b4..72cb19c3db6a 100644
--- a/include/linux/netfilter.h
+++ b/include/linux/netfilter.h
@@ -176,7 +176,7 @@ void nf_unregister_net_hooks(struct net *net, const struct nf_hook_ops *reg,
176int nf_register_sockopt(struct nf_sockopt_ops *reg); 176int nf_register_sockopt(struct nf_sockopt_ops *reg);
177void nf_unregister_sockopt(struct nf_sockopt_ops *reg); 177void nf_unregister_sockopt(struct nf_sockopt_ops *reg);
178 178
179#ifdef HAVE_JUMP_LABEL 179#ifdef CONFIG_JUMP_LABEL
180extern struct static_key nf_hooks_needed[NFPROTO_NUMPROTO][NF_MAX_HOOKS]; 180extern struct static_key nf_hooks_needed[NFPROTO_NUMPROTO][NF_MAX_HOOKS];
181#endif 181#endif
182 182
@@ -198,7 +198,7 @@ static inline int nf_hook(u_int8_t pf, unsigned int hook, struct net *net,
198 struct nf_hook_entries *hook_head = NULL; 198 struct nf_hook_entries *hook_head = NULL;
199 int ret = 1; 199 int ret = 1;
200 200
201#ifdef HAVE_JUMP_LABEL 201#ifdef CONFIG_JUMP_LABEL
202 if (__builtin_constant_p(pf) && 202 if (__builtin_constant_p(pf) &&
203 __builtin_constant_p(hook) && 203 __builtin_constant_p(hook) &&
204 !static_key_false(&nf_hooks_needed[pf][hook])) 204 !static_key_false(&nf_hooks_needed[pf][hook]))
diff --git a/include/linux/netfilter_ingress.h b/include/linux/netfilter_ingress.h
index 554c920691dd..a13774be2eb5 100644
--- a/include/linux/netfilter_ingress.h
+++ b/include/linux/netfilter_ingress.h
@@ -8,7 +8,7 @@
8#ifdef CONFIG_NETFILTER_INGRESS 8#ifdef CONFIG_NETFILTER_INGRESS
9static inline bool nf_hook_ingress_active(const struct sk_buff *skb) 9static inline bool nf_hook_ingress_active(const struct sk_buff *skb)
10{ 10{
11#ifdef HAVE_JUMP_LABEL 11#ifdef CONFIG_JUMP_LABEL
12 if (!static_key_false(&nf_hooks_needed[NFPROTO_NETDEV][NF_NETDEV_INGRESS])) 12 if (!static_key_false(&nf_hooks_needed[NFPROTO_NETDEV][NF_NETDEV_INGRESS]))
13 return false; 13 return false;
14#endif 14#endif
diff --git a/include/uapi/linux/Kbuild b/include/uapi/linux/Kbuild
index ca2787d9bf0f..5f24b50c9e88 100644
--- a/include/uapi/linux/Kbuild
+++ b/include/uapi/linux/Kbuild
@@ -1,5 +1,3 @@
1# UAPI Header export list
2
3ifeq ($(wildcard $(srctree)/arch/$(SRCARCH)/include/uapi/asm/a.out.h),) 1ifeq ($(wildcard $(srctree)/arch/$(SRCARCH)/include/uapi/asm/a.out.h),)
4no-export-headers += a.out.h 2no-export-headers += a.out.h
5endif 3endif
diff --git a/init/Kconfig b/init/Kconfig
index 3e6be1694766..d47cb77a220e 100644
--- a/init/Kconfig
+++ b/init/Kconfig
@@ -23,6 +23,9 @@ config CLANG_VERSION
23 int 23 int
24 default $(shell,$(srctree)/scripts/clang-version.sh $(CC)) 24 default $(shell,$(srctree)/scripts/clang-version.sh $(CC))
25 25
26config CC_HAS_ASM_GOTO
27 def_bool $(success,$(srctree)/scripts/gcc-goto.sh $(CC))
28
26config CONSTRUCTORS 29config CONSTRUCTORS
27 bool 30 bool
28 depends on !UML 31 depends on !UML
diff --git a/kernel/Makefile b/kernel/Makefile
index cde93d54c571..6aa7543bcdb2 100644
--- a/kernel/Makefile
+++ b/kernel/Makefile
@@ -122,7 +122,11 @@ targets += config_data.gz
122$(obj)/config_data.gz: $(KCONFIG_CONFIG) FORCE 122$(obj)/config_data.gz: $(KCONFIG_CONFIG) FORCE
123 $(call if_changed,gzip) 123 $(call if_changed,gzip)
124 124
125 filechk_ikconfiggz = (echo "static const char kernel_config_data[] __used = MAGIC_START"; cat $< | scripts/bin2c; echo "MAGIC_END;") 125filechk_ikconfiggz = \
126 echo "static const char kernel_config_data[] __used = MAGIC_START"; \
127 cat $< | scripts/bin2c; \
128 echo "MAGIC_END;"
129
126targets += config_data.h 130targets += config_data.h
127$(obj)/config_data.h: $(obj)/config_data.gz FORCE 131$(obj)/config_data.h: $(obj)/config_data.gz FORCE
128 $(call filechk,ikconfiggz) 132 $(call filechk,ikconfiggz)
diff --git a/kernel/jump_label.c b/kernel/jump_label.c
index b28028b08d44..bad96b476eb6 100644
--- a/kernel/jump_label.c
+++ b/kernel/jump_label.c
@@ -18,8 +18,6 @@
18#include <linux/cpu.h> 18#include <linux/cpu.h>
19#include <asm/sections.h> 19#include <asm/sections.h>
20 20
21#ifdef HAVE_JUMP_LABEL
22
23/* mutex to protect coming/going of the the jump_label table */ 21/* mutex to protect coming/going of the the jump_label table */
24static DEFINE_MUTEX(jump_label_mutex); 22static DEFINE_MUTEX(jump_label_mutex);
25 23
@@ -80,13 +78,13 @@ jump_label_sort_entries(struct jump_entry *start, struct jump_entry *stop)
80static void jump_label_update(struct static_key *key); 78static void jump_label_update(struct static_key *key);
81 79
82/* 80/*
83 * There are similar definitions for the !HAVE_JUMP_LABEL case in jump_label.h. 81 * There are similar definitions for the !CONFIG_JUMP_LABEL case in jump_label.h.
84 * The use of 'atomic_read()' requires atomic.h and its problematic for some 82 * The use of 'atomic_read()' requires atomic.h and its problematic for some
85 * kernel headers such as kernel.h and others. Since static_key_count() is not 83 * kernel headers such as kernel.h and others. Since static_key_count() is not
86 * used in the branch statements as it is for the !HAVE_JUMP_LABEL case its ok 84 * used in the branch statements as it is for the !CONFIG_JUMP_LABEL case its ok
87 * to have it be a function here. Similarly, for 'static_key_enable()' and 85 * to have it be a function here. Similarly, for 'static_key_enable()' and
88 * 'static_key_disable()', which require bug.h. This should allow jump_label.h 86 * 'static_key_disable()', which require bug.h. This should allow jump_label.h
89 * to be included from most/all places for HAVE_JUMP_LABEL. 87 * to be included from most/all places for CONFIG_JUMP_LABEL.
90 */ 88 */
91int static_key_count(struct static_key *key) 89int static_key_count(struct static_key *key)
92{ 90{
@@ -791,5 +789,3 @@ static __init int jump_label_test(void)
791} 789}
792early_initcall(jump_label_test); 790early_initcall(jump_label_test);
793#endif /* STATIC_KEYS_SELFTEST */ 791#endif /* STATIC_KEYS_SELFTEST */
794
795#endif /* HAVE_JUMP_LABEL */
diff --git a/kernel/module.c b/kernel/module.c
index fcbc0128810b..2ad1b5239910 100644
--- a/kernel/module.c
+++ b/kernel/module.c
@@ -3102,7 +3102,7 @@ static int find_module_sections(struct module *mod, struct load_info *info)
3102 sizeof(*mod->bpf_raw_events), 3102 sizeof(*mod->bpf_raw_events),
3103 &mod->num_bpf_raw_events); 3103 &mod->num_bpf_raw_events);
3104#endif 3104#endif
3105#ifdef HAVE_JUMP_LABEL 3105#ifdef CONFIG_JUMP_LABEL
3106 mod->jump_entries = section_objs(info, "__jump_table", 3106 mod->jump_entries = section_objs(info, "__jump_table",
3107 sizeof(*mod->jump_entries), 3107 sizeof(*mod->jump_entries),
3108 &mod->num_jump_entries); 3108 &mod->num_jump_entries);
diff --git a/kernel/sched/core.c b/kernel/sched/core.c
index 223f78d5c111..a674c7db2f29 100644
--- a/kernel/sched/core.c
+++ b/kernel/sched/core.c
@@ -24,7 +24,7 @@
24 24
25DEFINE_PER_CPU_SHARED_ALIGNED(struct rq, runqueues); 25DEFINE_PER_CPU_SHARED_ALIGNED(struct rq, runqueues);
26 26
27#if defined(CONFIG_SCHED_DEBUG) && defined(HAVE_JUMP_LABEL) 27#if defined(CONFIG_SCHED_DEBUG) && defined(CONFIG_JUMP_LABEL)
28/* 28/*
29 * Debugging: various feature bits 29 * Debugging: various feature bits
30 * 30 *
diff --git a/kernel/sched/debug.c b/kernel/sched/debug.c
index 02bd5f969b21..de3de997e245 100644
--- a/kernel/sched/debug.c
+++ b/kernel/sched/debug.c
@@ -73,7 +73,7 @@ static int sched_feat_show(struct seq_file *m, void *v)
73 return 0; 73 return 0;
74} 74}
75 75
76#ifdef HAVE_JUMP_LABEL 76#ifdef CONFIG_JUMP_LABEL
77 77
78#define jump_label_key__true STATIC_KEY_INIT_TRUE 78#define jump_label_key__true STATIC_KEY_INIT_TRUE
79#define jump_label_key__false STATIC_KEY_INIT_FALSE 79#define jump_label_key__false STATIC_KEY_INIT_FALSE
@@ -99,7 +99,7 @@ static void sched_feat_enable(int i)
99#else 99#else
100static void sched_feat_disable(int i) { }; 100static void sched_feat_disable(int i) { };
101static void sched_feat_enable(int i) { }; 101static void sched_feat_enable(int i) { };
102#endif /* HAVE_JUMP_LABEL */ 102#endif /* CONFIG_JUMP_LABEL */
103 103
104static int sched_feat_set(char *cmp) 104static int sched_feat_set(char *cmp)
105{ 105{
diff --git a/kernel/sched/fair.c b/kernel/sched/fair.c
index 6483834f1278..50aa2aba69bd 100644
--- a/kernel/sched/fair.c
+++ b/kernel/sched/fair.c
@@ -4217,7 +4217,7 @@ entity_tick(struct cfs_rq *cfs_rq, struct sched_entity *curr, int queued)
4217 4217
4218#ifdef CONFIG_CFS_BANDWIDTH 4218#ifdef CONFIG_CFS_BANDWIDTH
4219 4219
4220#ifdef HAVE_JUMP_LABEL 4220#ifdef CONFIG_JUMP_LABEL
4221static struct static_key __cfs_bandwidth_used; 4221static struct static_key __cfs_bandwidth_used;
4222 4222
4223static inline bool cfs_bandwidth_used(void) 4223static inline bool cfs_bandwidth_used(void)
@@ -4234,7 +4234,7 @@ void cfs_bandwidth_usage_dec(void)
4234{ 4234{
4235 static_key_slow_dec_cpuslocked(&__cfs_bandwidth_used); 4235 static_key_slow_dec_cpuslocked(&__cfs_bandwidth_used);
4236} 4236}
4237#else /* HAVE_JUMP_LABEL */ 4237#else /* CONFIG_JUMP_LABEL */
4238static bool cfs_bandwidth_used(void) 4238static bool cfs_bandwidth_used(void)
4239{ 4239{
4240 return true; 4240 return true;
@@ -4242,7 +4242,7 @@ static bool cfs_bandwidth_used(void)
4242 4242
4243void cfs_bandwidth_usage_inc(void) {} 4243void cfs_bandwidth_usage_inc(void) {}
4244void cfs_bandwidth_usage_dec(void) {} 4244void cfs_bandwidth_usage_dec(void) {}
4245#endif /* HAVE_JUMP_LABEL */ 4245#endif /* CONFIG_JUMP_LABEL */
4246 4246
4247/* 4247/*
4248 * default period for cfs group bandwidth. 4248 * default period for cfs group bandwidth.
diff --git a/kernel/sched/sched.h b/kernel/sched/sched.h
index 0ba08924e017..d04530bf251f 100644
--- a/kernel/sched/sched.h
+++ b/kernel/sched/sched.h
@@ -1488,7 +1488,7 @@ enum {
1488 1488
1489#undef SCHED_FEAT 1489#undef SCHED_FEAT
1490 1490
1491#if defined(CONFIG_SCHED_DEBUG) && defined(HAVE_JUMP_LABEL) 1491#if defined(CONFIG_SCHED_DEBUG) && defined(CONFIG_JUMP_LABEL)
1492 1492
1493/* 1493/*
1494 * To support run-time toggling of sched features, all the translation units 1494 * To support run-time toggling of sched features, all the translation units
@@ -1508,7 +1508,7 @@ static __always_inline bool static_branch_##name(struct static_key *key) \
1508extern struct static_key sched_feat_keys[__SCHED_FEAT_NR]; 1508extern struct static_key sched_feat_keys[__SCHED_FEAT_NR];
1509#define sched_feat(x) (static_branch_##x(&sched_feat_keys[__SCHED_FEAT_##x])) 1509#define sched_feat(x) (static_branch_##x(&sched_feat_keys[__SCHED_FEAT_##x]))
1510 1510
1511#else /* !(SCHED_DEBUG && HAVE_JUMP_LABEL) */ 1511#else /* !(SCHED_DEBUG && CONFIG_JUMP_LABEL) */
1512 1512
1513/* 1513/*
1514 * Each translation unit has its own copy of sysctl_sched_features to allow 1514 * Each translation unit has its own copy of sysctl_sched_features to allow
@@ -1524,7 +1524,7 @@ static const_debug __maybe_unused unsigned int sysctl_sched_features =
1524 1524
1525#define sched_feat(x) !!(sysctl_sched_features & (1UL << __SCHED_FEAT_##x)) 1525#define sched_feat(x) !!(sysctl_sched_features & (1UL << __SCHED_FEAT_##x))
1526 1526
1527#endif /* SCHED_DEBUG && HAVE_JUMP_LABEL */ 1527#endif /* SCHED_DEBUG && CONFIG_JUMP_LABEL */
1528 1528
1529extern struct static_key_false sched_numa_balancing; 1529extern struct static_key_false sched_numa_balancing;
1530extern struct static_key_false sched_schedstats; 1530extern struct static_key_false sched_schedstats;
diff --git a/lib/dynamic_debug.c b/lib/dynamic_debug.c
index c7c96bc7654a..dbf2b457e47e 100644
--- a/lib/dynamic_debug.c
+++ b/lib/dynamic_debug.c
@@ -188,7 +188,7 @@ static int ddebug_change(const struct ddebug_query *query,
188 newflags = (dp->flags & mask) | flags; 188 newflags = (dp->flags & mask) | flags;
189 if (newflags == dp->flags) 189 if (newflags == dp->flags)
190 continue; 190 continue;
191#ifdef HAVE_JUMP_LABEL 191#ifdef CONFIG_JUMP_LABEL
192 if (dp->flags & _DPRINTK_FLAGS_PRINT) { 192 if (dp->flags & _DPRINTK_FLAGS_PRINT) {
193 if (!(flags & _DPRINTK_FLAGS_PRINT)) 193 if (!(flags & _DPRINTK_FLAGS_PRINT))
194 static_branch_disable(&dp->key.dd_key_true); 194 static_branch_disable(&dp->key.dd_key_true);
diff --git a/lib/raid6/Makefile b/lib/raid6/Makefile
index 7ed43eaa02ef..4e90d443d1b0 100644
--- a/lib/raid6/Makefile
+++ b/lib/raid6/Makefile
@@ -13,8 +13,7 @@ raid6_pq-$(CONFIG_S390) += s390vx8.o recov_s390xc.o
13hostprogs-y += mktables 13hostprogs-y += mktables
14 14
15quiet_cmd_unroll = UNROLL $@ 15quiet_cmd_unroll = UNROLL $@
16 cmd_unroll = $(AWK) -f$(srctree)/$(src)/unroll.awk -vN=$(UNROLL) \ 16 cmd_unroll = $(AWK) -f$(srctree)/$(src)/unroll.awk -vN=$(UNROLL) < $< > $@
17 < $< > $@ || ( rm -f $@ && exit 1 )
18 17
19ifeq ($(CONFIG_ALTIVEC),y) 18ifeq ($(CONFIG_ALTIVEC),y)
20altivec_flags := -maltivec $(call cc-option,-mabi=altivec) 19altivec_flags := -maltivec $(call cc-option,-mabi=altivec)
@@ -160,7 +159,7 @@ $(obj)/s390vx8.c: $(src)/s390vx.uc $(src)/unroll.awk FORCE
160 $(call if_changed,unroll) 159 $(call if_changed,unroll)
161 160
162quiet_cmd_mktable = TABLE $@ 161quiet_cmd_mktable = TABLE $@
163 cmd_mktable = $(obj)/mktables > $@ || ( rm -f $@ && exit 1 ) 162 cmd_mktable = $(obj)/mktables > $@
164 163
165targets += tables.c 164targets += tables.c
166$(obj)/tables.c: $(obj)/mktables FORCE 165$(obj)/tables.c: $(obj)/mktables FORCE
diff --git a/net/core/dev.c b/net/core/dev.c
index 1b5a4410be0e..82f20022259d 100644
--- a/net/core/dev.c
+++ b/net/core/dev.c
@@ -1821,7 +1821,7 @@ EXPORT_SYMBOL_GPL(net_dec_egress_queue);
1821#endif 1821#endif
1822 1822
1823static DEFINE_STATIC_KEY_FALSE(netstamp_needed_key); 1823static DEFINE_STATIC_KEY_FALSE(netstamp_needed_key);
1824#ifdef HAVE_JUMP_LABEL 1824#ifdef CONFIG_JUMP_LABEL
1825static atomic_t netstamp_needed_deferred; 1825static atomic_t netstamp_needed_deferred;
1826static atomic_t netstamp_wanted; 1826static atomic_t netstamp_wanted;
1827static void netstamp_clear(struct work_struct *work) 1827static void netstamp_clear(struct work_struct *work)
@@ -1840,7 +1840,7 @@ static DECLARE_WORK(netstamp_work, netstamp_clear);
1840 1840
1841void net_enable_timestamp(void) 1841void net_enable_timestamp(void)
1842{ 1842{
1843#ifdef HAVE_JUMP_LABEL 1843#ifdef CONFIG_JUMP_LABEL
1844 int wanted; 1844 int wanted;
1845 1845
1846 while (1) { 1846 while (1) {
@@ -1860,7 +1860,7 @@ EXPORT_SYMBOL(net_enable_timestamp);
1860 1860
1861void net_disable_timestamp(void) 1861void net_disable_timestamp(void)
1862{ 1862{
1863#ifdef HAVE_JUMP_LABEL 1863#ifdef CONFIG_JUMP_LABEL
1864 int wanted; 1864 int wanted;
1865 1865
1866 while (1) { 1866 while (1) {
diff --git a/net/netfilter/core.c b/net/netfilter/core.c
index dc240cb47ddf..93aaec3a54ec 100644
--- a/net/netfilter/core.c
+++ b/net/netfilter/core.c
@@ -33,7 +33,7 @@ EXPORT_SYMBOL_GPL(nf_ipv6_ops);
33DEFINE_PER_CPU(bool, nf_skb_duplicated); 33DEFINE_PER_CPU(bool, nf_skb_duplicated);
34EXPORT_SYMBOL_GPL(nf_skb_duplicated); 34EXPORT_SYMBOL_GPL(nf_skb_duplicated);
35 35
36#ifdef HAVE_JUMP_LABEL 36#ifdef CONFIG_JUMP_LABEL
37struct static_key nf_hooks_needed[NFPROTO_NUMPROTO][NF_MAX_HOOKS]; 37struct static_key nf_hooks_needed[NFPROTO_NUMPROTO][NF_MAX_HOOKS];
38EXPORT_SYMBOL(nf_hooks_needed); 38EXPORT_SYMBOL(nf_hooks_needed);
39#endif 39#endif
@@ -347,7 +347,7 @@ static int __nf_register_net_hook(struct net *net, int pf,
347 if (pf == NFPROTO_NETDEV && reg->hooknum == NF_NETDEV_INGRESS) 347 if (pf == NFPROTO_NETDEV && reg->hooknum == NF_NETDEV_INGRESS)
348 net_inc_ingress_queue(); 348 net_inc_ingress_queue();
349#endif 349#endif
350#ifdef HAVE_JUMP_LABEL 350#ifdef CONFIG_JUMP_LABEL
351 static_key_slow_inc(&nf_hooks_needed[pf][reg->hooknum]); 351 static_key_slow_inc(&nf_hooks_needed[pf][reg->hooknum]);
352#endif 352#endif
353 BUG_ON(p == new_hooks); 353 BUG_ON(p == new_hooks);
@@ -405,7 +405,7 @@ static void __nf_unregister_net_hook(struct net *net, int pf,
405 if (pf == NFPROTO_NETDEV && reg->hooknum == NF_NETDEV_INGRESS) 405 if (pf == NFPROTO_NETDEV && reg->hooknum == NF_NETDEV_INGRESS)
406 net_dec_ingress_queue(); 406 net_dec_ingress_queue();
407#endif 407#endif
408#ifdef HAVE_JUMP_LABEL 408#ifdef CONFIG_JUMP_LABEL
409 static_key_slow_dec(&nf_hooks_needed[pf][reg->hooknum]); 409 static_key_slow_dec(&nf_hooks_needed[pf][reg->hooknum]);
410#endif 410#endif
411 } else { 411 } else {
diff --git a/scripts/Kbuild.include b/scripts/Kbuild.include
index 46bf1a073f5d..525bff667a52 100644
--- a/scripts/Kbuild.include
+++ b/scripts/Kbuild.include
@@ -41,11 +41,11 @@ kecho := $($(quiet)kecho)
41### 41###
42# filechk is used to check if the content of a generated file is updated. 42# filechk is used to check if the content of a generated file is updated.
43# Sample usage: 43# Sample usage:
44# define filechk_sample 44#
45# echo $KERNELRELEASE 45# filechk_sample = echo $(KERNELRELEASE)
46# endef 46# version.h: FORCE
47# version.h : Makefile
48# $(call filechk,sample) 47# $(call filechk,sample)
48#
49# The rule defined shall write to stdout the content of the new file. 49# The rule defined shall write to stdout the content of the new file.
50# The existing file will be compared with the new one. 50# The existing file will be compared with the new one.
51# - If no file exist it is created 51# - If no file exist it is created
@@ -56,7 +56,7 @@ kecho := $($(quiet)kecho)
56define filechk 56define filechk
57 $(Q)set -e; \ 57 $(Q)set -e; \
58 mkdir -p $(dir $@); \ 58 mkdir -p $(dir $@); \
59 $(filechk_$(1)) > $@.tmp; \ 59 { $(filechk_$(1)); } > $@.tmp; \
60 if [ -r $@ ] && cmp -s $@ $@.tmp; then \ 60 if [ -r $@ ] && cmp -s $@ $@.tmp; then \
61 rm -f $@.tmp; \ 61 rm -f $@.tmp; \
62 else \ 62 else \
diff --git a/scripts/Makefile.asm-generic b/scripts/Makefile.asm-generic
index 760323e70ebc..a62d2823f6cf 100644
--- a/scripts/Makefile.asm-generic
+++ b/scripts/Makefile.asm-generic
@@ -14,6 +14,10 @@ src := $(subst /generated,,$(obj))
14 14
15include scripts/Kbuild.include 15include scripts/Kbuild.include
16 16
17# If arch does not implement mandatory headers, fallback to asm-generic ones.
18mandatory-y := $(filter-out $(generated-y), $(mandatory-y))
19generic-y += $(foreach f, $(mandatory-y), $(if $(wildcard $(srctree)/$(src)/$(f)),,$(f)))
20
17generic-y := $(addprefix $(obj)/, $(generic-y)) 21generic-y := $(addprefix $(obj)/, $(generic-y))
18generated-y := $(addprefix $(obj)/, $(generated-y)) 22generated-y := $(addprefix $(obj)/, $(generated-y))
19 23
diff --git a/scripts/Makefile.headersinst b/scripts/Makefile.headersinst
index 45927fcddbc0..3d1ebaabd1b6 100644
--- a/scripts/Makefile.headersinst
+++ b/scripts/Makefile.headersinst
@@ -56,13 +56,6 @@ check-file := $(installdir)/.check
56all-files := $(header-files) $(genhdr-files) 56all-files := $(header-files) $(genhdr-files)
57output-files := $(addprefix $(installdir)/, $(all-files)) 57output-files := $(addprefix $(installdir)/, $(all-files))
58 58
59ifneq ($(mandatory-y),)
60missing := $(filter-out $(all-files),$(mandatory-y))
61ifneq ($(missing),)
62$(error Some mandatory headers ($(missing)) are missing in $(obj))
63endif
64endif
65
66# Work out what needs to be removed 59# Work out what needs to be removed
67oldheaders := $(patsubst $(installdir)/%,%,$(wildcard $(installdir)/*.h)) 60oldheaders := $(patsubst $(installdir)/%,%,$(wildcard $(installdir)/*.h))
68unwanted := $(filter-out $(all-files),$(oldheaders)) 61unwanted := $(filter-out $(all-files),$(oldheaders))
diff --git a/scripts/Makefile.lib b/scripts/Makefile.lib
index 3ceaa2e2a6ce..12b88d09c3a4 100644
--- a/scripts/Makefile.lib
+++ b/scripts/Makefile.lib
@@ -242,8 +242,7 @@ cmd_objcopy = $(OBJCOPY) $(OBJCOPYFLAGS) $(OBJCOPYFLAGS_$(@F)) $< $@
242# --------------------------------------------------------------------------- 242# ---------------------------------------------------------------------------
243 243
244quiet_cmd_gzip = GZIP $@ 244quiet_cmd_gzip = GZIP $@
245cmd_gzip = (cat $(filter-out FORCE,$^) | gzip -n -f -9 > $@) || \ 245 cmd_gzip = cat $(filter-out FORCE,$^) | gzip -n -f -9 > $@
246 (rm -f $@ ; false)
247 246
248# DTC 247# DTC
249# --------------------------------------------------------------------------- 248# ---------------------------------------------------------------------------
@@ -305,8 +304,8 @@ quiet_cmd_dtb_check = CHECK $@
305 cmd_dtb_check = $(DT_CHECKER) -p $(DT_TMP_SCHEMA) $@ ; 304 cmd_dtb_check = $(DT_CHECKER) -p $(DT_TMP_SCHEMA) $@ ;
306 305
307define rule_dtc_dt_yaml 306define rule_dtc_dt_yaml
308 $(call cmd_and_fixdep,dtc,yaml) \ 307 $(call cmd_and_fixdep,dtc,yaml)
309 $(call echo-cmd,dtb_check) $(cmd_dtb_check) 308 $(call cmd,dtb_check)
310endef 309endef
311 310
312$(obj)/%.dt.yaml: $(src)/%.dts $(DTC) $(DT_TMP_SCHEMA) FORCE 311$(obj)/%.dt.yaml: $(src)/%.dts $(DTC) $(DT_TMP_SCHEMA) FORCE
@@ -336,26 +335,22 @@ printf "%08x\n" $$dec_size | \
336 335
337quiet_cmd_bzip2 = BZIP2 $@ 336quiet_cmd_bzip2 = BZIP2 $@
338cmd_bzip2 = (cat $(filter-out FORCE,$^) | \ 337cmd_bzip2 = (cat $(filter-out FORCE,$^) | \
339 bzip2 -9 && $(call size_append, $(filter-out FORCE,$^))) > $@ || \ 338 bzip2 -9 && $(call size_append, $(filter-out FORCE,$^))) > $@
340 (rm -f $@ ; false)
341 339
342# Lzma 340# Lzma
343# --------------------------------------------------------------------------- 341# ---------------------------------------------------------------------------
344 342
345quiet_cmd_lzma = LZMA $@ 343quiet_cmd_lzma = LZMA $@
346cmd_lzma = (cat $(filter-out FORCE,$^) | \ 344cmd_lzma = (cat $(filter-out FORCE,$^) | \
347 lzma -9 && $(call size_append, $(filter-out FORCE,$^))) > $@ || \ 345 lzma -9 && $(call size_append, $(filter-out FORCE,$^))) > $@
348 (rm -f $@ ; false)
349 346
350quiet_cmd_lzo = LZO $@ 347quiet_cmd_lzo = LZO $@
351cmd_lzo = (cat $(filter-out FORCE,$^) | \ 348cmd_lzo = (cat $(filter-out FORCE,$^) | \
352 lzop -9 && $(call size_append, $(filter-out FORCE,$^))) > $@ || \ 349 lzop -9 && $(call size_append, $(filter-out FORCE,$^))) > $@
353 (rm -f $@ ; false)
354 350
355quiet_cmd_lz4 = LZ4 $@ 351quiet_cmd_lz4 = LZ4 $@
356cmd_lz4 = (cat $(filter-out FORCE,$^) | \ 352cmd_lz4 = (cat $(filter-out FORCE,$^) | \
357 lz4c -l -c1 stdin stdout && $(call size_append, $(filter-out FORCE,$^))) > $@ || \ 353 lz4c -l -c1 stdin stdout && $(call size_append, $(filter-out FORCE,$^))) > $@
358 (rm -f $@ ; false)
359 354
360# U-Boot mkimage 355# U-Boot mkimage
361# --------------------------------------------------------------------------- 356# ---------------------------------------------------------------------------
@@ -371,15 +366,13 @@ UIMAGE_TYPE ?= kernel
371UIMAGE_LOADADDR ?= arch_must_set_this 366UIMAGE_LOADADDR ?= arch_must_set_this
372UIMAGE_ENTRYADDR ?= $(UIMAGE_LOADADDR) 367UIMAGE_ENTRYADDR ?= $(UIMAGE_LOADADDR)
373UIMAGE_NAME ?= 'Linux-$(KERNELRELEASE)' 368UIMAGE_NAME ?= 'Linux-$(KERNELRELEASE)'
374UIMAGE_IN ?= $<
375UIMAGE_OUT ?= $@
376 369
377quiet_cmd_uimage = UIMAGE $(UIMAGE_OUT) 370quiet_cmd_uimage = UIMAGE $@
378 cmd_uimage = $(CONFIG_SHELL) $(MKIMAGE) -A $(UIMAGE_ARCH) -O linux \ 371 cmd_uimage = $(CONFIG_SHELL) $(MKIMAGE) -A $(UIMAGE_ARCH) -O linux \
379 -C $(UIMAGE_COMPRESSION) $(UIMAGE_OPTS-y) \ 372 -C $(UIMAGE_COMPRESSION) $(UIMAGE_OPTS-y) \
380 -T $(UIMAGE_TYPE) \ 373 -T $(UIMAGE_TYPE) \
381 -a $(UIMAGE_LOADADDR) -e $(UIMAGE_ENTRYADDR) \ 374 -a $(UIMAGE_LOADADDR) -e $(UIMAGE_ENTRYADDR) \
382 -n $(UIMAGE_NAME) -d $(UIMAGE_IN) $(UIMAGE_OUT) 375 -n $(UIMAGE_NAME) -d $< $@
383 376
384# XZ 377# XZ
385# --------------------------------------------------------------------------- 378# ---------------------------------------------------------------------------
@@ -401,13 +394,11 @@ quiet_cmd_uimage = UIMAGE $(UIMAGE_OUT)
401quiet_cmd_xzkern = XZKERN $@ 394quiet_cmd_xzkern = XZKERN $@
402cmd_xzkern = (cat $(filter-out FORCE,$^) | \ 395cmd_xzkern = (cat $(filter-out FORCE,$^) | \
403 sh $(srctree)/scripts/xz_wrap.sh && \ 396 sh $(srctree)/scripts/xz_wrap.sh && \
404 $(call size_append, $(filter-out FORCE,$^))) > $@ || \ 397 $(call size_append, $(filter-out FORCE,$^))) > $@
405 (rm -f $@ ; false)
406 398
407quiet_cmd_xzmisc = XZMISC $@ 399quiet_cmd_xzmisc = XZMISC $@
408cmd_xzmisc = (cat $(filter-out FORCE,$^) | \ 400cmd_xzmisc = (cat $(filter-out FORCE,$^) | \
409 xz --check=crc32 --lzma2=dict=1MiB) > $@ || \ 401 xz --check=crc32 --lzma2=dict=1MiB) > $@
410 (rm -f $@ ; false)
411 402
412# ASM offsets 403# ASM offsets
413# --------------------------------------------------------------------------- 404# ---------------------------------------------------------------------------
@@ -426,7 +417,6 @@ endef
426# Use filechk to avoid rebuilds when a header changes, but the resulting file 417# Use filechk to avoid rebuilds when a header changes, but the resulting file
427# does not 418# does not
428define filechk_offsets 419define filechk_offsets
429 ( \
430 echo "#ifndef $2"; \ 420 echo "#ifndef $2"; \
431 echo "#define $2"; \ 421 echo "#define $2"; \
432 echo "/*"; \ 422 echo "/*"; \
@@ -437,5 +427,5 @@ define filechk_offsets
437 echo ""; \ 427 echo ""; \
438 sed -ne $(sed-offsets) < $<; \ 428 sed -ne $(sed-offsets) < $<; \
439 echo ""; \ 429 echo ""; \
440 echo "#endif" ) 430 echo "#endif"
441endef 431endef
diff --git a/scripts/coccinelle/iterators/use_after_iter.cocci b/scripts/coccinelle/iterators/use_after_iter.cocci
index ce8cc9c006e5..66a1140474c8 100644
--- a/scripts/coccinelle/iterators/use_after_iter.cocci
+++ b/scripts/coccinelle/iterators/use_after_iter.cocci
@@ -35,6 +35,7 @@ iterator name hlist_for_each_entry_from;
35iterator name hlist_for_each_entry_safe; 35iterator name hlist_for_each_entry_safe;
36statement S; 36statement S;
37position p1,p2; 37position p1,p2;
38type T;
38@@ 39@@
39 40
40( 41(
@@ -125,6 +126,8 @@ sizeof(<+...c...+>)
125| 126|
126 &c->member 127 &c->member
127| 128|
129T c;
130|
128c = E 131c = E
129| 132|
130*c@p2 133*c@p2
diff --git a/scripts/coccinelle/misc/boolinit.cocci b/scripts/coccinelle/misc/boolinit.cocci
index b0584a33c921..aabb581fab5c 100644
--- a/scripts/coccinelle/misc/boolinit.cocci
+++ b/scripts/coccinelle/misc/boolinit.cocci
@@ -136,9 +136,14 @@ position p1;
136@r4 depends on !patch@ 136@r4 depends on !patch@
137bool b; 137bool b;
138position p2; 138position p2;
139identifier i;
139constant c != {0,1}; 140constant c != {0,1};
140@@ 141@@
142(
143 b = i
144|
141*b@p2 = c 145*b@p2 = c
146)
142 147
143@script:python depends on org@ 148@script:python depends on org@
144p << r1.p; 149p << r1.p;
diff --git a/scripts/gcc-goto.sh b/scripts/gcc-goto.sh
index 083c526073ef..8b980fb2270a 100755
--- a/scripts/gcc-goto.sh
+++ b/scripts/gcc-goto.sh
@@ -3,7 +3,7 @@
3# Test for gcc 'asm goto' support 3# Test for gcc 'asm goto' support
4# Copyright (C) 2010, Jason Baron <jbaron@redhat.com> 4# Copyright (C) 2010, Jason Baron <jbaron@redhat.com>
5 5
6cat << "END" | $@ -x c - -c -o /dev/null >/dev/null 2>&1 && echo "y" 6cat << "END" | $@ -x c - -fno-PIE -c -o /dev/null
7int main(void) 7int main(void)
8{ 8{
9#if defined(__arm__) || defined(__aarch64__) 9#if defined(__arm__) || defined(__aarch64__)
diff --git a/scripts/kallsyms.c b/scripts/kallsyms.c
index 109a1af7e444..77cebad0474e 100644
--- a/scripts/kallsyms.c
+++ b/scripts/kallsyms.c
@@ -334,10 +334,10 @@ static void write_src(void)
334 printf("#include <asm/types.h>\n"); 334 printf("#include <asm/types.h>\n");
335 printf("#if BITS_PER_LONG == 64\n"); 335 printf("#if BITS_PER_LONG == 64\n");
336 printf("#define PTR .quad\n"); 336 printf("#define PTR .quad\n");
337 printf("#define ALGN .align 8\n"); 337 printf("#define ALGN .balign 8\n");
338 printf("#else\n"); 338 printf("#else\n");
339 printf("#define PTR .long\n"); 339 printf("#define PTR .long\n");
340 printf("#define ALGN .align 4\n"); 340 printf("#define ALGN .balign 4\n");
341 printf("#endif\n"); 341 printf("#endif\n");
342 342
343 printf("\t.section .rodata, \"a\"\n"); 343 printf("\t.section .rodata, \"a\"\n");
diff --git a/scripts/kconfig/.gitignore b/scripts/kconfig/.gitignore
index 0aabc1d6a182..b5bf92f66d11 100644
--- a/scripts/kconfig/.gitignore
+++ b/scripts/kconfig/.gitignore
@@ -2,6 +2,7 @@
2# Generated files 2# Generated files
3# 3#
4*.moc 4*.moc
5*conf-cfg
5 6
6# 7#
7# configuration programs 8# configuration programs
diff --git a/scripts/kconfig/Makefile b/scripts/kconfig/Makefile
index ec204fa54c9a..c05ab001b54c 100644
--- a/scripts/kconfig/Makefile
+++ b/scripts/kconfig/Makefile
@@ -157,55 +157,53 @@ conf-objs := conf.o $(common-objs)
157hostprogs-y += nconf 157hostprogs-y += nconf
158nconf-objs := nconf.o nconf.gui.o $(common-objs) 158nconf-objs := nconf.o nconf.gui.o $(common-objs)
159 159
160HOSTLDLIBS_nconf = $(shell . $(obj)/.nconf-cfg && echo $$libs) 160HOSTLDLIBS_nconf = $(shell . $(obj)/nconf-cfg && echo $$libs)
161HOSTCFLAGS_nconf.o = $(shell . $(obj)/.nconf-cfg && echo $$cflags) 161HOSTCFLAGS_nconf.o = $(shell . $(obj)/nconf-cfg && echo $$cflags)
162HOSTCFLAGS_nconf.gui.o = $(shell . $(obj)/.nconf-cfg && echo $$cflags) 162HOSTCFLAGS_nconf.gui.o = $(shell . $(obj)/nconf-cfg && echo $$cflags)
163 163
164$(obj)/nconf.o $(obj)/nconf.gui.o: $(obj)/.nconf-cfg 164$(obj)/nconf.o $(obj)/nconf.gui.o: $(obj)/nconf-cfg
165 165
166# mconf: Used for the menuconfig target based on lxdialog 166# mconf: Used for the menuconfig target based on lxdialog
167hostprogs-y += mconf 167hostprogs-y += mconf
168lxdialog := checklist.o inputbox.o menubox.o textbox.o util.o yesno.o 168lxdialog := checklist.o inputbox.o menubox.o textbox.o util.o yesno.o
169mconf-objs := mconf.o $(addprefix lxdialog/, $(lxdialog)) $(common-objs) 169mconf-objs := mconf.o $(addprefix lxdialog/, $(lxdialog)) $(common-objs)
170 170
171HOSTLDLIBS_mconf = $(shell . $(obj)/.mconf-cfg && echo $$libs) 171HOSTLDLIBS_mconf = $(shell . $(obj)/mconf-cfg && echo $$libs)
172$(foreach f, mconf.o $(lxdialog), \ 172$(foreach f, mconf.o $(lxdialog), \
173 $(eval HOSTCFLAGS_$f = $$(shell . $(obj)/.mconf-cfg && echo $$$$cflags))) 173 $(eval HOSTCFLAGS_$f = $$(shell . $(obj)/mconf-cfg && echo $$$$cflags)))
174 174
175$(obj)/mconf.o: $(obj)/.mconf-cfg 175$(obj)/mconf.o: $(obj)/mconf-cfg
176$(addprefix $(obj)/lxdialog/, $(lxdialog)): $(obj)/.mconf-cfg 176$(addprefix $(obj)/lxdialog/, $(lxdialog)): $(obj)/mconf-cfg
177 177
178# qconf: Used for the xconfig target based on Qt 178# qconf: Used for the xconfig target based on Qt
179hostprogs-y += qconf 179hostprogs-y += qconf
180qconf-cxxobjs := qconf.o 180qconf-cxxobjs := qconf.o
181qconf-objs := images.o $(common-objs) 181qconf-objs := images.o $(common-objs)
182 182
183HOSTLDLIBS_qconf = $(shell . $(obj)/.qconf-cfg && echo $$libs) 183HOSTLDLIBS_qconf = $(shell . $(obj)/qconf-cfg && echo $$libs)
184HOSTCXXFLAGS_qconf.o = $(shell . $(obj)/.qconf-cfg && echo $$cflags) 184HOSTCXXFLAGS_qconf.o = $(shell . $(obj)/qconf-cfg && echo $$cflags)
185 185
186$(obj)/qconf.o: $(obj)/.qconf-cfg $(obj)/qconf.moc 186$(obj)/qconf.o: $(obj)/qconf-cfg $(obj)/qconf.moc
187 187
188quiet_cmd_moc = MOC $@ 188quiet_cmd_moc = MOC $@
189 cmd_moc = $(shell . $(obj)/.qconf-cfg && echo $$moc) -i $< -o $@ 189 cmd_moc = $(shell . $(obj)/qconf-cfg && echo $$moc) -i $< -o $@
190 190
191$(obj)/%.moc: $(src)/%.h $(obj)/.qconf-cfg 191$(obj)/%.moc: $(src)/%.h $(obj)/qconf-cfg
192 $(call cmd,moc) 192 $(call cmd,moc)
193 193
194# gconf: Used for the gconfig target based on GTK+ 194# gconf: Used for the gconfig target based on GTK+
195hostprogs-y += gconf 195hostprogs-y += gconf
196gconf-objs := gconf.o images.o $(common-objs) 196gconf-objs := gconf.o images.o $(common-objs)
197 197
198HOSTLDLIBS_gconf = $(shell . $(obj)/.gconf-cfg && echo $$libs) 198HOSTLDLIBS_gconf = $(shell . $(obj)/gconf-cfg && echo $$libs)
199HOSTCFLAGS_gconf.o = $(shell . $(obj)/.gconf-cfg && echo $$cflags) 199HOSTCFLAGS_gconf.o = $(shell . $(obj)/gconf-cfg && echo $$cflags)
200 200
201$(obj)/gconf.o: $(obj)/.gconf-cfg 201$(obj)/gconf.o: $(obj)/gconf-cfg
202 202
203# check if necessary packages are available, and configure build flags 203# check if necessary packages are available, and configure build flags
204define filechk_conf_cfg 204filechk_conf_cfg = $(CONFIG_SHELL) $<
205 $(CONFIG_SHELL) $<
206endef
207 205
208$(obj)/.%conf-cfg: $(src)/%conf-cfg.sh FORCE 206$(obj)/%conf-cfg: $(src)/%conf-cfg.sh FORCE
209 $(call filechk,conf_cfg) 207 $(call filechk,conf_cfg)
210 208
211clean-files += .*conf-cfg 209clean-files += conf-cfg
diff --git a/scripts/kconfig/zconf.y b/scripts/kconfig/zconf.y
index 69409abc7dc2..60936c76865b 100644
--- a/scripts/kconfig/zconf.y
+++ b/scripts/kconfig/zconf.y
@@ -35,7 +35,6 @@ static struct menu *current_menu, *current_entry;
35%union 35%union
36{ 36{
37 char *string; 37 char *string;
38 struct file *file;
39 struct symbol *symbol; 38 struct symbol *symbol;
40 struct expr *expr; 39 struct expr *expr;
41 struct menu *menu; 40 struct menu *menu;
diff --git a/tools/arch/x86/include/asm/rmwcc.h b/tools/arch/x86/include/asm/rmwcc.h
index dc90c0c2fae3..fee7983a90b4 100644
--- a/tools/arch/x86/include/asm/rmwcc.h
+++ b/tools/arch/x86/include/asm/rmwcc.h
@@ -2,7 +2,7 @@
2#ifndef _TOOLS_LINUX_ASM_X86_RMWcc 2#ifndef _TOOLS_LINUX_ASM_X86_RMWcc
3#define _TOOLS_LINUX_ASM_X86_RMWcc 3#define _TOOLS_LINUX_ASM_X86_RMWcc
4 4
5#ifdef CC_HAVE_ASM_GOTO 5#ifdef CONFIG_CC_HAS_ASM_GOTO
6 6
7#define __GEN_RMWcc(fullop, var, cc, ...) \ 7#define __GEN_RMWcc(fullop, var, cc, ...) \
8do { \ 8do { \
@@ -20,7 +20,7 @@ cc_label: \
20#define GEN_BINARY_RMWcc(op, var, vcon, val, arg0, cc) \ 20#define GEN_BINARY_RMWcc(op, var, vcon, val, arg0, cc) \
21 __GEN_RMWcc(op " %1, " arg0, var, cc, vcon (val)) 21 __GEN_RMWcc(op " %1, " arg0, var, cc, vcon (val))
22 22
23#else /* !CC_HAVE_ASM_GOTO */ 23#else /* !CONFIG_CC_HAS_ASM_GOTO */
24 24
25#define __GEN_RMWcc(fullop, var, cc, ...) \ 25#define __GEN_RMWcc(fullop, var, cc, ...) \
26do { \ 26do { \
@@ -37,6 +37,6 @@ do { \
37#define GEN_BINARY_RMWcc(op, var, vcon, val, arg0, cc) \ 37#define GEN_BINARY_RMWcc(op, var, vcon, val, arg0, cc) \
38 __GEN_RMWcc(op " %2, " arg0, var, cc, vcon (val)) 38 __GEN_RMWcc(op " %2, " arg0, var, cc, vcon (val))
39 39
40#endif /* CC_HAVE_ASM_GOTO */ 40#endif /* CONFIG_CC_HAS_ASM_GOTO */
41 41
42#endif /* _TOOLS_LINUX_ASM_X86_RMWcc */ 42#endif /* _TOOLS_LINUX_ASM_X86_RMWcc */