Pull x86 pti bits and fixes from Thomas Gleixner: "This last update contains: - An objtool fix to prevent a segfault with the gold linker by changing the invocation order. That's not just for gold, it's a general robustness improvement. - An improved error message for objtool which spares tearing hairs. - Make KASAN fail loudly if there is not enough memory instead of oopsing at some random place later - RSB fill on context switch to prevent RSB underflow and speculation through other units. - Make the retpoline/RSB functionality work reliably for both Intel and AMD - Add retpoline to the module version magic so mismatch can be detected - A small (non-fix) update for cpufeatures which prevents cpu feature clashing for the upcoming extra mitigation bits to ease backporting" * 'x86-pti-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: module: Add retpoline tag to VERMAGIC x86/cpufeature: Move processor tracing out of scattered features objtool: Improve error message for bad file argument objtool: Fix seg fault with gold linker x86/retpoline: Add LFENCE to the retpoline/RSB filling RSB macros x86/retpoline: Fill RSB on context switch for affected CPUs x86/kasan: Panic if there is not enough memory to boot
Showing the changes to scripts (1 of 10 files). Show all
Unified · Split
| @@ -265,12 +265,18 @@ else · 264 unmodified lines | |||
| 265 | objtool_args += $(call cc-ifversion, -lt, 0405, --no-unreachable) | 265 | objtool_args += $(call cc-ifversion, -lt, 0405, --no-unreachable) |
| 266 | endif | 266 | endif |
| 267 | 267 | ||
| 268 | ifdef CONFIG_MODVERSIONS | ||
| 269 | objtool_o = $(@D)/.tmp_$(@F) | ||
| 270 | else | ||
| 271 | objtool_o = $(@) | ||
| 272 | endif | ||
| 273 | |||
| 268 | # 'OBJECT_FILES_NON_STANDARD := y': skip objtool checking for a directory | 274 | # 'OBJECT_FILES_NON_STANDARD := y': skip objtool checking for a directory |
| 269 | # 'OBJECT_FILES_NON_STANDARD_foo.o := 'y': skip objtool checking for a file | 275 | # 'OBJECT_FILES_NON_STANDARD_foo.o := 'y': skip objtool checking for a file |
| 270 | # 'OBJECT_FILES_NON_STANDARD_foo.o := 'n': override directory skip for a file | 276 | # 'OBJECT_FILES_NON_STANDARD_foo.o := 'n': override directory skip for a file |
| 271 | cmd_objtool = $(if $(patsubst y%,, \ | 277 | cmd_objtool = $(if $(patsubst y%,, \ |
| 272 | $(OBJECT_FILES_NON_STANDARD_$(basetarget).o)$(OBJECT_FILES_NON_STANDARD)n), \ | 278 | $(OBJECT_FILES_NON_STANDARD_$(basetarget).o)$(OBJECT_FILES_NON_STANDARD)n), \ |
| 273 | $(__objtool_obj) $(objtool_args) "$(@)";) | 279 | $(__objtool_obj) $(objtool_args) "$(objtool_o)";) |
| 274 | objtool_obj = $(if $(patsubst y%,, \ | 280 | objtool_obj = $(if $(patsubst y%,, \ |
| 275 | $(OBJECT_FILES_NON_STANDARD_$(basetarget).o)$(OBJECT_FILES_NON_STANDARD)n), \ | 281 | $(OBJECT_FILES_NON_STANDARD_$(basetarget).o)$(OBJECT_FILES_NON_STANDARD)n), \ |
| 276 | $(__objtool_obj)) | 282 | $(__objtool_obj)) |
| @@ -286,16 +292,16 @@ objtool_dep = $(objtool_obj) \ · 9 unmodified lines | |||
| 286 | define rule_cc_o_c | 292 | define rule_cc_o_c |
| 287 | $(call echo-cmd,checksrc) $(cmd_checksrc) \ | 293 | $(call echo-cmd,checksrc) $(cmd_checksrc) \ |
| 288 | $(call cmd_and_fixdep,cc_o_c) \ | 294 | $(call cmd_and_fixdep,cc_o_c) \ |
| 289 | $(cmd_modversions_c) \ | ||
| 290 | $(cmd_checkdoc) \ | 295 | $(cmd_checkdoc) \ |
| 291 | $(call echo-cmd,objtool) $(cmd_objtool) \ | 296 | $(call echo-cmd,objtool) $(cmd_objtool) \ |
| 297 | $(cmd_modversions_c) \ | ||
| 292 | $(call echo-cmd,record_mcount) $(cmd_record_mcount) | 298 | $(call echo-cmd,record_mcount) $(cmd_record_mcount) |
| 293 | endef | 299 | endef |
| 294 | 300 | ||
| 295 | define rule_as_o_S | 301 | define rule_as_o_S |
| 296 | $(call cmd_and_fixdep,as_o_S) \ | 302 | $(call cmd_and_fixdep,as_o_S) \ |
| 297 | $(cmd_modversions_S) \ | 303 | $(call echo-cmd,objtool) $(cmd_objtool) \ |
| 298 | $(call echo-cmd,objtool) $(cmd_objtool) | 304 | $(cmd_modversions_S) |
| 299 | endef | 305 | endef |
| 300 | 306 | ||
| 301 | # List module undefined symbols (or empty line if not enabled) | 307 | # List module undefined symbols (or empty line if not enabled) |