Lines Matching +full:re +full:- +full:routed
1 // SPDX-License-Identifier: GPL-2.0-only
3 * Copyright (C) 2012,2013 - ARM Ltd
7 * Copyright (C) 2012 - Virtual Open Systems and Columbia University
20 #include <asm/debug-monitors.h>
41 vcpu->stat.hvc_exit_stat++; in handle_hvc()
66 * "If an SMC instruction executed at Non-secure EL1 is in handle_smc()
71 * otherwise return to the same address. Furthermore, pre-incrementing in handle_smc()
90 * at Non-secure EL1 is trapped to EL2 if HCR_EL2.TSC==1, rather than in handle_smc()
115 * kvm_handle_wfx - handle a wait-for-interrupts or wait-for-event
123 * world-switches and schedule other host processes until there is an
135 vcpu->stat.wfe_exit_stat++; in kvm_handle_wfx()
138 vcpu->stat.wfi_exit_stat++; in kvm_handle_wfx()
171 * kvm_handle_guest_debug - handle a debug exception instruction
177 * userspace to re-inject the correct exception for guest delivery.
179 * @return: 0 (while setting vcpu->run->exit_reason)
183 struct kvm_run *run = vcpu->run; in kvm_handle_guest_debug()
186 if (!vcpu->guest_debug && forward_debug_exception(vcpu)) in kvm_handle_guest_debug()
189 run->exit_reason = KVM_EXIT_DEBUG; in kvm_handle_guest_debug()
190 run->debug.arch.hsr = lower_32_bits(esr); in kvm_handle_guest_debug()
191 run->debug.arch.hsr_high = upper_32_bits(esr); in kvm_handle_guest_debug()
192 run->flags = KVM_DEBUG_ARCH_HSR_HIGH_VALID; in kvm_handle_guest_debug()
196 run->debug.arch.far = vcpu->arch.fault.far_el2; in kvm_handle_guest_debug()
210 kvm_pr_unimpl("Unknown exception class: esr: %#016llx -- %s\n", in kvm_handle_unknown_ec()
218 * Guest access to SVE registers should be routed to this handler only
233 * - Guest usage of a ptrauth instruction (which the guest EL1 did not
238 * - Running an L2 NV guest while L1 has left HCR_EL2.API==0, and for
270 * - the guest is in EL2, and we need to fully emulate ERET in kvm_handle_eret()
272 * - the guest is in EL1, and we need to reinject the in kvm_handle_eret()
334 * We may be single-stepping an emulated instruction. If the emulation
366 struct kvm_run *run = vcpu->run; in handle_exit()
371 * survives it will re-execute the original instruction. in handle_exit()
387 * EL2 has been reset to the hyp-stub. This happens when a guest in handle_exit()
388 * is pre-emptied by kvm_reboot()'s shutdown call. in handle_exit()
390 run->exit_reason = KVM_EXIT_FAIL_ENTRY; in handle_exit()
397 run->exit_reason = KVM_EXIT_FAIL_ENTRY; in handle_exit()
398 return -EINVAL; in handle_exit()
402 run->exit_reason = KVM_EXIT_INTERNAL_ERROR; in handle_exit()
447 u64 hyp_offset = elr_in_kimg - kaslr_offset() - elr_virt; in nvhe_hyp_panic_handler()
481 * Hyp has panicked and we're going to handle that by panicking the in nvhe_hyp_panic_handler()
482 * kernel. The kernel offset will be revealed in the panic so we're in nvhe_hyp_panic_handler()