Lines Matching refs:esr
807 u64 esr = read_sysreg_el2(SYS_ESR); in host_inject_abort() local
815 ec = ESR_ELx_EC(esr); in host_inject_abort()
822 esr &= ~ESR_ELx_EC_MASK; in host_inject_abort()
823 esr |= ec << ESR_ELx_EC_SHIFT; in host_inject_abort()
835 esr |= ESR_ELx_S1PTW; in host_inject_abort()
837 write_sysreg_el1(esr, SYS_ESR); in host_inject_abort()
851 static bool is_dabt(u64 esr) in is_dabt() argument
853 return ESR_ELx_EC(esr) == ESR_ELx_EC_DABT_LOW; in is_dabt()
856 static int (*perm_fault_handler)(struct kvm_cpu_context *host_ctxt, u64 esr, u64 addr);
858 int hyp_register_host_perm_fault_handler(int (*cb)(struct kvm_cpu_context *ctxt, u64 esr, u64 addr)) in hyp_register_host_perm_fault_handler() argument
863 static int handle_host_perm_fault(struct kvm_cpu_context *host_ctxt, u64 esr, u64 addr) in handle_host_perm_fault() argument
865 int (*cb)(struct kvm_cpu_context *host_ctxt, u64 esr, u64 addr); in handle_host_perm_fault()
868 return cb ? cb(host_ctxt, esr, addr) : -EPERM; in handle_host_perm_fault()
874 u64 esr, addr; in handle_host_mem_abort() local
877 esr = read_sysreg_el2(SYS_ESR); in handle_host_mem_abort()
878 if (!__get_fault_info(esr, &fault)) { in handle_host_mem_abort()
886 fault.esr_el2 = esr; in handle_host_mem_abort()
894 if (is_dabt(esr) && !addr_is_memory(addr) && in handle_host_mem_abort()
895 pkvm_iommu_host_dabt_handler(host_ctxt, esr, addr)) in handle_host_mem_abort()
904 if ((esr & ESR_ELx_FSC_TYPE) == FSC_PERM) in handle_host_mem_abort()
905 ret = handle_host_perm_fault(host_ctxt, esr, addr); in handle_host_mem_abort()
913 trace_host_mem_abort(esr, addr); in handle_host_mem_abort()