Lines Matching full:fault
3 * Based on arch/arm/mm/fault.c
45 #include <trace/hooks/fault.h>
274 * If we now have a valid translation, treat the translation fault as in is_spurious_el1_translation_fault()
281 * If we got a different type of fault from the AT instruction, in is_spurious_el1_translation_fault()
282 * treat the translation fault as spurious. in is_spurious_el1_translation_fault()
344 * tag fault. in do_tag_recovery()
370 * Are we prepared to handle this kernel fault? in __do_kernel_fault()
377 "Ignoring spurious kernel translation fault at virtual address %016lx\n", addr)) in __do_kernel_fault()
414 * an alignment fault not caused by the memory type would take in set_thread_esr()
415 * precedence over translation fault for a real access to empty in set_thread_esr()
416 * space. Unfortunately we can't easily distinguish "alignment fault in set_thread_esr()
417 * not caused by memory type" from "alignment fault caused by memory in set_thread_esr()
419 * fault.) in set_thread_esr()
429 * We always report the ESR as if the fault was taken in set_thread_esr()
431 * clear. (In fact it always will be a fault to EL1.) in set_thread_esr()
439 * Claim a level 0 translation fault. in set_thread_esr()
469 * handle this fault with. in do_bad_area()
504 * Check that the permissions on the VMA allow for the fault which in __do_page_fault()
519 * should fault. EL0 cannot issue DC IVAC (undef).
531 vm_fault_t fault; in do_page_fault() local
542 * the fault. in do_page_fault()
576 * let's try a speculative page fault without grabbing the in do_page_fault()
579 fault = handle_speculative_fault(mm, addr, mm_flags, &vma, regs); in do_page_fault()
580 if (fault != VM_FAULT_RETRY) in do_page_fault()
609 fault = __do_page_fault(vma, addr, mm_flags, vm_flags, regs); in do_page_fault()
612 if (fault_signal_pending(fault, regs)) { in do_page_fault()
618 if (fault & VM_FAULT_RETRY) { in do_page_fault()
638 if (likely(!(fault & (VM_FAULT_ERROR | VM_FAULT_BADMAP | in do_page_fault()
644 * handle this fault with. in do_page_fault()
649 if (fault & VM_FAULT_OOM) { in do_page_fault()
652 * userspace (which will retry the fault, or kill us if we got in do_page_fault()
661 if (fault & VM_FAULT_SIGBUS) { in do_page_fault()
664 * this page fault. in do_page_fault()
667 } else if (fault & (VM_FAULT_HWPOISON_LARGE | VM_FAULT_HWPOISON)) { in do_page_fault()
671 if (fault & VM_FAULT_HWPOISON_LARGE) in do_page_fault()
672 lsb = hstate_index_to_shift(VM_FAULT_GET_HINDEX(fault)); in do_page_fault()
681 fault == VM_FAULT_BADACCESS ? SEGV_ACCERR : SEGV_MAPERR, in do_page_fault()
774 { do_bad, SIGKILL, SI_KERNEL, "ttbr address size fault" },
775 { do_bad, SIGKILL, SI_KERNEL, "level 1 address size fault" },
776 { do_bad, SIGKILL, SI_KERNEL, "level 2 address size fault" },
777 { do_bad, SIGKILL, SI_KERNEL, "level 3 address size fault" },
778 { do_translation_fault, SIGSEGV, SEGV_MAPERR, "level 0 translation fault" },
779 { do_translation_fault, SIGSEGV, SEGV_MAPERR, "level 1 translation fault" },
780 { do_translation_fault, SIGSEGV, SEGV_MAPERR, "level 2 translation fault" },
781 { do_translation_fault, SIGSEGV, SEGV_MAPERR, "level 3 translation fault" },
783 { do_page_fault, SIGSEGV, SEGV_ACCERR, "level 1 access flag fault" },
784 { do_page_fault, SIGSEGV, SEGV_ACCERR, "level 2 access flag fault" },
785 { do_page_fault, SIGSEGV, SEGV_ACCERR, "level 3 access flag fault" },
787 { do_page_fault, SIGSEGV, SEGV_ACCERR, "level 1 permission fault" },
788 { do_page_fault, SIGSEGV, SEGV_ACCERR, "level 2 permission fault" },
789 { do_page_fault, SIGSEGV, SEGV_ACCERR, "level 3 permission fault" },
791 { do_tag_check_fault, SIGSEGV, SEGV_MTESERR, "synchronous tag check fault" },
807 { do_alignment_fault, SIGBUS, BUS_ADRALN, "alignment fault" },
823 { do_bad, SIGKILL, SI_KERNEL, "Unsupported atomic hardware update fault" },
826 { do_bad, SIGKILL, SI_KERNEL, "implementation fault (lockdown abort)" },
827 { do_bad, SIGBUS, BUS_OBJERR, "implementation fault (unsupported exclusive)" },
835 { do_bad, SIGKILL, SI_KERNEL, "section domain fault" },
836 { do_bad, SIGKILL, SI_KERNEL, "page domain fault" },
849 pr_alert("Unhandled fault at 0x%016lx\n", addr); in do_mem_abort()
856 * At this point we have an unrecognized fault type whose tag bits may in do_mem_abort()
985 * Used during anonymous page fault handling.