Fix a false-positive KASAN warning, fix an AMD erratum on Zen4 CPUs,
and fix kernel-doc build warnings. Signed-off-by: Ingo Molnar <mingo@kernel.org> -----BEGIN PGP SIGNATURE----- iQJFBAABCgAvFiEEBpT5eoXrXCwVQwEKEnMQ0APhK1gFAmUrEOQRHG1pbmdvQGtl cm5lbC5vcmcACgkQEnMQ0APhK1hG+g/+OUdKjz6u3rod9ZR0/u0koyXFsat2V+CD 9OSUsDvff/7alRhztUoyj3g1t+brp1GuvyPTJ+KN3jJO08PHfQgm7eH873dguPSs k4o45eKglYuCb+9CQvOJggqOp7W2tvA1BW8pU/YdNgwxOARZFBeY6nkxW7oii9Ff TLRtzVfBAShYm7QK8HIae7DpPwqt1RcINcWRa4HX93/Gh364Q3Cywj+8DfARweWq J+47bgrMP5o+AHWiZs0AGsflXy0PYmrmFzh/d6iMqLSZuAhyG6heyzuThAimze5L 5O89Dh/cPHTwQdY1pOAYezMVRNECecsrv6nlu9uTjCkvutopd1EB+WfZh2z1qaPB 3t6JKliUSRUrckk/RtM8qIcb6VV7G0+6ez9n6EGo+9ci2On8afN2va16qo/rrwU7 dfCyRLxaoLA4AZWjvtVSMHRlA4Iox+pH7AlBCeALIStHXZfaPJIjNkfyO5iT3Mug 6KyI8QDpVvGfWz5GwE+4GaB6IKekcGOqROubK9X8mtNg+FhDU7xcIEM2f28etmYt kmKWD9yJdKiaW+bwJ3C2krUhtxQgW4wNjLrrJTU3m8tsc+7SwEKbUls+OHHEUyMD rE7X64fuL9E+VXyOg58bN4XbUpLm94z6E4IuBPsLthdKPsz9Lq6R2BZlpZQ4cVyG efglSGvEHnU= =5l6l -----END PGP SIGNATURE----- Merge tag 'x86-urgent-2023-10-15' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip Pull x86 fixes from Ingo Molnar: "Fix a false-positive KASAN warning, fix an AMD erratum on Zen4 CPUs, and fix kernel-doc build warnings" * tag 'x86-urgent-2023-10-15' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: x86/alternatives: Disable KASAN in apply_alternatives() x86/cpu: Fix AMD erratum #1485 on Zen4-based CPUs x86/resctrl: Fix kernel-doc warnings
This commit is contained in:
commit
dc9b2e683b
|
@ -637,12 +637,17 @@
|
|||
/* AMD Last Branch Record MSRs */
|
||||
#define MSR_AMD64_LBR_SELECT 0xc000010e
|
||||
|
||||
/* Fam 17h MSRs */
|
||||
#define MSR_F17H_IRPERF 0xc00000e9
|
||||
/* Zen4 */
|
||||
#define MSR_ZEN4_BP_CFG 0xc001102e
|
||||
#define MSR_ZEN4_BP_CFG_SHARED_BTB_FIX_BIT 5
|
||||
|
||||
/* Zen 2 */
|
||||
#define MSR_ZEN2_SPECTRAL_CHICKEN 0xc00110e3
|
||||
#define MSR_ZEN2_SPECTRAL_CHICKEN_BIT BIT_ULL(1)
|
||||
|
||||
/* Fam 17h MSRs */
|
||||
#define MSR_F17H_IRPERF 0xc00000e9
|
||||
|
||||
/* Fam 16h MSRs */
|
||||
#define MSR_F16H_L2I_PERF_CTL 0xc0010230
|
||||
#define MSR_F16H_L2I_PERF_CTR 0xc0010231
|
||||
|
|
|
@ -403,6 +403,17 @@ void __init_or_module noinline apply_alternatives(struct alt_instr *start,
|
|||
u8 insn_buff[MAX_PATCH_LEN];
|
||||
|
||||
DPRINTK(ALT, "alt table %px, -> %px", start, end);
|
||||
|
||||
/*
|
||||
* In the case CONFIG_X86_5LEVEL=y, KASAN_SHADOW_START is defined using
|
||||
* cpu_feature_enabled(X86_FEATURE_LA57) and is therefore patched here.
|
||||
* During the process, KASAN becomes confused seeing partial LA57
|
||||
* conversion and triggers a false-positive out-of-bound report.
|
||||
*
|
||||
* Disable KASAN until the patching is complete.
|
||||
*/
|
||||
kasan_disable_current();
|
||||
|
||||
/*
|
||||
* The scan order should be from start to end. A later scanned
|
||||
* alternative code can overwrite previously scanned alternative code.
|
||||
|
@ -452,6 +463,8 @@ void __init_or_module noinline apply_alternatives(struct alt_instr *start,
|
|||
|
||||
text_poke_early(instr, insn_buff, insn_buff_sz);
|
||||
}
|
||||
|
||||
kasan_enable_current();
|
||||
}
|
||||
|
||||
static inline bool is_jcc32(struct insn *insn)
|
||||
|
|
|
@ -80,6 +80,10 @@ static const int amd_div0[] =
|
|||
AMD_LEGACY_ERRATUM(AMD_MODEL_RANGE(0x17, 0x00, 0x0, 0x2f, 0xf),
|
||||
AMD_MODEL_RANGE(0x17, 0x50, 0x0, 0x5f, 0xf));
|
||||
|
||||
static const int amd_erratum_1485[] =
|
||||
AMD_LEGACY_ERRATUM(AMD_MODEL_RANGE(0x19, 0x10, 0x0, 0x1f, 0xf),
|
||||
AMD_MODEL_RANGE(0x19, 0x60, 0x0, 0xaf, 0xf));
|
||||
|
||||
static bool cpu_has_amd_erratum(struct cpuinfo_x86 *cpu, const int *erratum)
|
||||
{
|
||||
int osvw_id = *erratum++;
|
||||
|
@ -1149,6 +1153,10 @@ static void init_amd(struct cpuinfo_x86 *c)
|
|||
pr_notice_once("AMD Zen1 DIV0 bug detected. Disable SMT for full protection.\n");
|
||||
setup_force_cpu_bug(X86_BUG_DIV0);
|
||||
}
|
||||
|
||||
if (!cpu_has(c, X86_FEATURE_HYPERVISOR) &&
|
||||
cpu_has_amd_erratum(c, amd_erratum_1485))
|
||||
msr_set_bit(MSR_ZEN4_BP_CFG, MSR_ZEN4_BP_CFG_SHARED_BTB_FIX_BIT);
|
||||
}
|
||||
|
||||
#ifdef CONFIG_X86_32
|
||||
|
|
|
@ -30,15 +30,15 @@ struct rmid_entry {
|
|||
struct list_head list;
|
||||
};
|
||||
|
||||
/**
|
||||
* @rmid_free_lru A least recently used list of free RMIDs
|
||||
/*
|
||||
* @rmid_free_lru - A least recently used list of free RMIDs
|
||||
* These RMIDs are guaranteed to have an occupancy less than the
|
||||
* threshold occupancy
|
||||
*/
|
||||
static LIST_HEAD(rmid_free_lru);
|
||||
|
||||
/**
|
||||
* @rmid_limbo_count count of currently unused but (potentially)
|
||||
/*
|
||||
* @rmid_limbo_count - count of currently unused but (potentially)
|
||||
* dirty RMIDs.
|
||||
* This counts RMIDs that no one is currently using but that
|
||||
* may have a occupancy value > resctrl_rmid_realloc_threshold. User can
|
||||
|
@ -46,7 +46,7 @@ static LIST_HEAD(rmid_free_lru);
|
|||
*/
|
||||
static unsigned int rmid_limbo_count;
|
||||
|
||||
/**
|
||||
/*
|
||||
* @rmid_entry - The entry in the limbo and free lists.
|
||||
*/
|
||||
static struct rmid_entry *rmid_ptrs;
|
||||
|
|
Loading…
Reference in New Issue