switch.c (6e2b347d42e54282e4c6cfa08272db462b178f7f) switch.c (e9ada6c208c15c907afe5afb1aa82e23e81eb8ba)
1// SPDX-License-Identifier: GPL-2.0-only
2/*
3 * Copyright (C) 2015 - ARM Ltd
4 * Author: Marc Zyngier <marc.zyngier@arm.com>
5 */
6
7#include <hyp/switch.h>
8#include <hyp/sysreg-sr.h>

--- 29 unchanged lines hidden (view full) ---

38{
39 u64 val;
40
41 ___activate_traps(vcpu);
42 __activate_traps_common(vcpu);
43
44 val = vcpu->arch.cptr_el2;
45 val |= CPTR_EL2_TTA | CPTR_EL2_TAM;
1// SPDX-License-Identifier: GPL-2.0-only
2/*
3 * Copyright (C) 2015 - ARM Ltd
4 * Author: Marc Zyngier <marc.zyngier@arm.com>
5 */
6
7#include <hyp/switch.h>
8#include <hyp/sysreg-sr.h>

--- 29 unchanged lines hidden (view full) ---

38{
39 u64 val;
40
41 ___activate_traps(vcpu);
42 __activate_traps_common(vcpu);
43
44 val = vcpu->arch.cptr_el2;
45 val |= CPTR_EL2_TTA | CPTR_EL2_TAM;
46 if (!update_fp_enabled(vcpu)) {
46 if (!guest_owns_fp_regs(vcpu)) {
47 val |= CPTR_EL2_TFP | CPTR_EL2_TZ;
48 __activate_traps_fpsimd32(vcpu);
49 }
50 if (cpus_have_final_cap(ARM64_SME))
51 val |= CPTR_EL2_TSM;
52
53 write_sysreg(val, cptr_el2);
54 write_sysreg(__this_cpu_read(kvm_hyp_vector), vbar_el2);

--- 336 unchanged lines hidden ---
47 val |= CPTR_EL2_TFP | CPTR_EL2_TZ;
48 __activate_traps_fpsimd32(vcpu);
49 }
50 if (cpus_have_final_cap(ARM64_SME))
51 val |= CPTR_EL2_TSM;
52
53 write_sysreg(val, cptr_el2);
54 write_sysreg(__this_cpu_read(kvm_hyp_vector), vbar_el2);

--- 336 unchanged lines hidden ---