Skip to content

Commit e68da90

Browse files
willdeacongregkh
authored andcommitted
arm64: errata: Add missing sentinels to Spectre-BHB MIDR arrays
[ Upstream commit fee4d171451c1ad9e8aaf65fc0ab7d143a33bd72 ] Commit a5951389e58d ("arm64: errata: Add newer ARM cores to the spectre_bhb_loop_affected() lists") added some additional CPUs to the Spectre-BHB workaround, including some new arrays for designs that require new 'k' values for the workaround to be effective. Unfortunately, the new arrays omitted the sentinel entry and so is_midr_in_range_list() will walk off the end when it doesn't find a match. With UBSAN enabled, this leads to a crash during boot when is_midr_in_range_list() is inlined (which was more common prior to c8c2647e69be ("arm64: Make  _midr_in_range_list() an exported function")): | Internal error: aarch64 BRK: 00000000f2000001 [#1] PREEMPT SMP | pstate: 804000c5 (Nzcv daIF +PAN -UAO -TCO -DIT -SSBS BTYPE=--) | pc : spectre_bhb_loop_affected+0x28/0x30 | lr : is_spectre_bhb_affected+0x170/0x190 | [...] | Call trace: | spectre_bhb_loop_affected+0x28/0x30 | update_cpu_capabilities+0xc0/0x184 | init_cpu_features+0x188/0x1a4 | cpuinfo_store_boot_cpu+0x4c/0x60 | smp_prepare_boot_cpu+0x38/0x54 | start_kernel+0x8c/0x478 | __primary_switched+0xc8/0xd4 | Code: 6b09011f 54000061 52801080 d65f03c0 (d4200020) | ---[ end trace 0000000000000000 ]--- | Kernel panic - not syncing: aarch64 BRK: Fatal exception Add the missing sentinel entries. Cc: Lee Jones <[email protected]> Cc: James Morse <[email protected]> Cc: Doug Anderson <[email protected]> Cc: Shameer Kolothum <[email protected]> Cc: <[email protected]> Reported-by: Greg Kroah-Hartman <[email protected]> Fixes: a5951389e58d ("arm64: errata: Add newer ARM cores to the spectre_bhb_loop_affected() lists") Signed-off-by: Will Deacon <[email protected]> Reviewed-by: Lee Jones <[email protected]> Reviewed-by: Douglas Anderson <[email protected]> Reviewed-by: Greg Kroah-Hartman <[email protected]> Link: https://lore.kernel.org/r/[email protected] Signed-off-by: Catalin Marinas <[email protected]> Signed-off-by: Pu Lehui <[email protected]> Signed-off-by: Greg Kroah-Hartman <[email protected]>
1 parent 4a2f3d8 commit e68da90

File tree

1 file changed

+2
-0
lines changed

1 file changed

+2
-0
lines changed

arch/arm64/kernel/proton-pack.c

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -887,10 +887,12 @@ static u8 spectre_bhb_loop_affected(void)
887887
static const struct midr_range spectre_bhb_k132_list[] = {
888888
MIDR_ALL_VERSIONS(MIDR_CORTEX_X3),
889889
MIDR_ALL_VERSIONS(MIDR_NEOVERSE_V2),
890+
{},
890891
};
891892
static const struct midr_range spectre_bhb_k38_list[] = {
892893
MIDR_ALL_VERSIONS(MIDR_CORTEX_A715),
893894
MIDR_ALL_VERSIONS(MIDR_CORTEX_A720),
895+
{},
894896
};
895897
static const struct midr_range spectre_bhb_k32_list[] = {
896898
MIDR_ALL_VERSIONS(MIDR_CORTEX_A78),

0 commit comments

Comments
 (0)