.. | .. |
---|
60 | 60 | select ARCH_32BIT_OFF_T if X86_32 |
---|
61 | 61 | select ARCH_CLOCKSOURCE_INIT |
---|
62 | 62 | select ARCH_HAS_ACPI_TABLE_UPGRADE if ACPI |
---|
| 63 | + select ARCH_HAS_CPU_FINALIZE_INIT |
---|
63 | 64 | select ARCH_HAS_DEBUG_VIRTUAL |
---|
64 | 65 | select ARCH_HAS_DEBUG_VM_PGTABLE if !X86_PAE |
---|
65 | 66 | select ARCH_HAS_DEVMEM_IS_ALLOWED |
---|
.. | .. |
---|
1336 | 1337 | If you select this option, microcode patch loading support for AMD |
---|
1337 | 1338 | processors will be enabled. |
---|
1338 | 1339 | |
---|
1339 | | -config MICROCODE_OLD_INTERFACE |
---|
1340 | | - bool "Ancient loading interface (DEPRECATED)" |
---|
| 1340 | +config MICROCODE_LATE_LOADING |
---|
| 1341 | + bool "Late microcode loading (DANGEROUS)" |
---|
1341 | 1342 | default n |
---|
1342 | 1343 | depends on MICROCODE |
---|
1343 | 1344 | help |
---|
1344 | | - DO NOT USE THIS! This is the ancient /dev/cpu/microcode interface |
---|
1345 | | - which was used by userspace tools like iucode_tool and microcode.ctl. |
---|
1346 | | - It is inadequate because it runs too late to be able to properly |
---|
1347 | | - load microcode on a machine and it needs special tools. Instead, you |
---|
1348 | | - should've switched to the early loading method with the initrd or |
---|
1349 | | - builtin microcode by now: Documentation/x86/microcode.rst |
---|
| 1345 | + Loading microcode late, when the system is up and executing instructions |
---|
| 1346 | + is a tricky business and should be avoided if possible. Just the sequence |
---|
| 1347 | + of synchronizing all cores and SMT threads is one fragile dance which does |
---|
| 1348 | + not guarantee that cores might not softlock after the loading. Therefore, |
---|
| 1349 | + use this at your own risk. Late loading taints the kernel too. |
---|
1350 | 1350 | |
---|
1351 | 1351 | config X86_MSR |
---|
1352 | 1352 | tristate "/dev/cpu/*/msr - Model-specific register support" |
---|
.. | .. |
---|
2483 | 2483 | This mitigates both spectre_v2 and retbleed at great cost to |
---|
2484 | 2484 | performance. |
---|
2485 | 2485 | |
---|
| 2486 | +config CPU_SRSO |
---|
| 2487 | + bool "Mitigate speculative RAS overflow on AMD" |
---|
| 2488 | + depends on CPU_SUP_AMD && X86_64 && RETHUNK |
---|
| 2489 | + default y |
---|
| 2490 | + help |
---|
| 2491 | + Enable the SRSO mitigation needed on AMD Zen1-4 machines. |
---|
| 2492 | + |
---|
2486 | 2493 | config SLS |
---|
2487 | 2494 | bool "Mitigate Straight-Line-Speculation" |
---|
2488 | 2495 | depends on CC_HAS_SLS && X86_64 |
---|
.. | .. |
---|
2492 | 2499 | against straight line speculation. The kernel image might be slightly |
---|
2493 | 2500 | larger. |
---|
2494 | 2501 | |
---|
| 2502 | +config GDS_FORCE_MITIGATION |
---|
| 2503 | + bool "Force GDS Mitigation" |
---|
| 2504 | + depends on CPU_SUP_INTEL |
---|
| 2505 | + default n |
---|
| 2506 | + help |
---|
| 2507 | + Gather Data Sampling (GDS) is a hardware vulnerability which allows |
---|
| 2508 | + unprivileged speculative access to data which was previously stored in |
---|
| 2509 | + vector registers. |
---|
| 2510 | + |
---|
| 2511 | + This option is equivalent to setting gather_data_sampling=force on the |
---|
| 2512 | + command line. The microcode mitigation is used if present, otherwise |
---|
| 2513 | + AVX is disabled as a mitigation. On affected systems that are missing |
---|
| 2514 | + the microcode any userspace code that unconditionally uses AVX will |
---|
| 2515 | + break with this option set. |
---|
| 2516 | + |
---|
| 2517 | + Setting this option on systems not vulnerable to GDS has no effect. |
---|
| 2518 | + |
---|
| 2519 | + If in doubt, say N. |
---|
| 2520 | + |
---|
2495 | 2521 | endif |
---|
2496 | 2522 | |
---|
2497 | 2523 | config ARCH_HAS_ADD_PAGES |
---|