1/* 2 * Copyright (c) 2022, Arm Limited and Contributors. All rights reserved. 3 * 4 * SPDX-License-Identifier: BSD-3-Clause 5 */ 6 7#include <context.h> 8 9#if WORKAROUND_CVE_2022_23960 10 /* 11 * This macro applies the mitigation for CVE-2022-23960. 12 * The macro saves x2 to the CPU context. 13 * SP should point to the CPU context. 14 */ 15 .macro apply_cve_2022_23960_bhb_wa _bhb_loop_count 16 str x2, [sp, #CTX_GPREGS_OFFSET + CTX_GPREG_X2] 17 18 /* CVE-BHB-NUM loop count */ 19 mov x2, \_bhb_loop_count 20 211: 22 /* b pc+4 part of the workaround */ 23 b 2f 242: 25 subs x2, x2, #1 26 bne 1b 27 speculation_barrier 28 ldr x2, [sp, #CTX_GPREGS_OFFSET + CTX_GPREG_X2] 29 .endm 30#endif /* WORKAROUND_CVE_2022_23960 */ 31