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 | 265 | objtool_args += $(call cc-ifversion, -lt, 0405, --no-unreachable) |
| 266 | 266 | endif |
| 267 | 267 | |
| 268 | +ifdef CONFIG_MODVERSIONS | |
| 269 | +objtool_o = $(@D)/.tmp_$(@F) | |
| 270 | +else | |
| 271 | +objtool_o = $(@) | |
| 272 | +endif | |
| 273 | + | |
| 268 | 274 | # 'OBJECT_FILES_NON_STANDARD := y': skip objtool checking for a directory |
| 269 | 275 | # 'OBJECT_FILES_NON_STANDARD_foo.o := 'y': skip objtool checking for a file |
| 270 | 276 | # 'OBJECT_FILES_NON_STANDARD_foo.o := 'n': override directory skip for a file |
| 271 | 277 | cmd_objtool = $(if $(patsubst y%,, \ |
| 272 | 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 | 280 | objtool_obj = $(if $(patsubst y%,, \ |
| 275 | 281 | $(OBJECT_FILES_NON_STANDARD_$(basetarget).o)$(OBJECT_FILES_NON_STANDARD)n), \ |
| 276 | 282 | $(__objtool_obj)) |
| @@ -286,16 +292,16 @@ objtool_dep = $(objtool_obj) \ · 9 unmodified lines | ||
| 286 | 292 | define rule_cc_o_c |
| 287 | 293 | $(call echo-cmd,checksrc) $(cmd_checksrc) \ |
| 288 | 294 | $(call cmd_and_fixdep,cc_o_c) \ |
| 289 | − $(cmd_modversions_c) \ | |
| 290 | 295 | $(cmd_checkdoc) \ |
| 291 | 296 | $(call echo-cmd,objtool) $(cmd_objtool) \ |
| 297 | + $(cmd_modversions_c) \ | |
| 292 | 298 | $(call echo-cmd,record_mcount) $(cmd_record_mcount) |
| 293 | 299 | endef |
| 294 | 300 | |
| 295 | 301 | define rule_as_o_S |
| 296 | 302 | $(call cmd_and_fixdep,as_o_S) \ |
| 297 | − $(cmd_modversions_S) \ | |
| 298 | − $(call echo-cmd,objtool) $(cmd_objtool) | |
| 303 | + $(call echo-cmd,objtool) $(cmd_objtool) \ | |
| 304 | + $(cmd_modversions_S) | |
| 299 | 305 | endef |
| 300 | 306 | |
| 301 | 307 | # List module undefined symbols (or empty line if not enabled) |