hc
2024-02-20 102a0743326a03cd1a1202ceda21e175b7d3575c
kernel/arch/x86/lib/Makefile
....@@ -6,22 +6,31 @@
66 # Produces uninteresting flaky coverage.
77 KCOV_INSTRUMENT_delay.o := n
88
9
+# KCSAN uses udelay for introducing watchpoint delay; avoid recursion.
10
+KCSAN_SANITIZE_delay.o := n
11
+ifdef CONFIG_KCSAN
12
+# In case KCSAN+lockdep+ftrace are enabled, disable ftrace for delay.o to avoid
13
+# lockdep -> [other libs] -> KCSAN -> udelay -> ftrace -> lockdep recursion.
14
+CFLAGS_REMOVE_delay.o = $(CC_FLAGS_FTRACE)
15
+endif
16
+
917 # Early boot use of cmdline; don't instrument it
1018 ifdef CONFIG_AMD_MEM_ENCRYPT
1119 KCOV_INSTRUMENT_cmdline.o := n
1220 KASAN_SANITIZE_cmdline.o := n
21
+KCSAN_SANITIZE_cmdline.o := n
1322
1423 ifdef CONFIG_FUNCTION_TRACER
1524 CFLAGS_REMOVE_cmdline.o = -pg
1625 endif
1726
18
-CFLAGS_cmdline.o := $(call cc-option, -fno-stack-protector)
27
+CFLAGS_cmdline.o := -fno-stack-protector -fno-jump-tables
1928 endif
2029
2130 inat_tables_script = $(srctree)/arch/x86/tools/gen-insn-attr-x86.awk
2231 inat_tables_maps = $(srctree)/arch/x86/lib/x86-opcode-map.txt
2332 quiet_cmd_inat_tables = GEN $@
24
- cmd_inat_tables = $(AWK) -f $(inat_tables_script) $(inat_tables_maps) > $@ || rm -f $@
33
+ cmd_inat_tables = $(AWK) -f $(inat_tables_script) $(inat_tables_maps) > $@
2534
2635 $(obj)/inat-tables.c: $(inat_tables_script) $(inat_tables_maps)
2736 $(call cmd,inat_tables)
....@@ -35,13 +44,14 @@
3544 lib-y := delay.o misc.o cmdline.o cpu.o
3645 lib-y += usercopy_$(BITS).o usercopy.o getuser.o putuser.o
3746 lib-y += memcpy_$(BITS).o
38
-lib-$(CONFIG_RWSEM_XCHGADD_ALGORITHM) += rwsem.o
47
+lib-$(CONFIG_ARCH_HAS_COPY_MC) += copy_mc.o copy_mc_64.o
3948 lib-$(CONFIG_INSTRUCTION_DECODER) += insn.o inat.o insn-eval.o
4049 lib-$(CONFIG_RANDOMIZE_BASE) += kaslr.o
4150 lib-$(CONFIG_FUNCTION_ERROR_INJECTION) += error-inject.o
4251 lib-$(CONFIG_RETPOLINE) += retpoline.o
4352
4453 obj-y += msr.o msr-reg.o msr-reg-export.o hweight.o
54
+obj-y += iomem.o
4555
4656 ifeq ($(CONFIG_X86_32),y)
4757 obj-y += atomic64_32.o