Lines Matching full:fault

3  * Based on arch/arm/mm/fault.c
291 * If we now have a valid translation, treat the translation fault as in is_spurious_el1_translation_fault()
298 * If we got a different type of fault from the AT instruction, in is_spurious_el1_translation_fault()
299 * treat the translation fault as spurious. in is_spurious_el1_translation_fault()
349 * tag fault. in do_tag_recovery()
375 * Are we prepared to handle this kernel fault? in __do_kernel_fault()
382 "Ignoring spurious kernel translation fault at virtual address %016lx\n", addr)) in __do_kernel_fault()
423 * an alignment fault not caused by the memory type would take in set_thread_esr()
424 * precedence over translation fault for a real access to empty in set_thread_esr()
425 * space. Unfortunately we can't easily distinguish "alignment fault in set_thread_esr()
426 * not caused by memory type" from "alignment fault caused by memory in set_thread_esr()
428 * fault.) in set_thread_esr()
438 * We always report the ESR as if the fault was taken in set_thread_esr()
440 * clear. (In fact it always will be a fault to EL1.) in set_thread_esr()
448 * Claim a level 0 translation fault. in set_thread_esr()
478 * handle this fault with. in do_bad_area()
522 * should fault. EL0 cannot issue DC IVAC (undef).
551 vm_fault_t fault; in do_page_fault() local
564 * the fault. in do_page_fault()
574 * for the fault to be benign, __do_page_fault() would check in do_page_fault()
579 /* It was exec fault */ in do_page_fault()
585 * write so always handle any GCS fault as a write fault, in do_page_fault()
591 /* It was write fault */ in do_page_fault()
595 /* It was read fault */ in do_page_fault()
625 fault = 0; in do_page_fault()
632 fault = 0; in do_page_fault()
641 fault = 0; in do_page_fault()
647 fault = handle_mm_fault(vma, addr, mm_flags | FAULT_FLAG_VMA_LOCK, regs); in do_page_fault()
648 if (!(fault & (VM_FAULT_RETRY | VM_FAULT_COMPLETED))) in do_page_fault()
651 if (!(fault & VM_FAULT_RETRY)) { in do_page_fault()
656 if (fault & VM_FAULT_MAJOR) in do_page_fault()
660 if (fault_signal_pending(fault, regs)) { in do_page_fault()
670 fault = 0; in do_page_fault()
677 fault = 0; in do_page_fault()
685 fault = 0; in do_page_fault()
690 fault = handle_mm_fault(vma, addr, mm_flags, regs); in do_page_fault()
693 if (fault_signal_pending(fault, regs)) { in do_page_fault()
699 /* The fault is fully completed (including releasing mmap lock) */ in do_page_fault()
700 if (fault & VM_FAULT_COMPLETED) in do_page_fault()
703 if (fault & VM_FAULT_RETRY) { in do_page_fault()
711 if (likely(!(fault & VM_FAULT_ERROR))) in do_page_fault()
718 * handle this fault with. in do_page_fault()
723 if (fault & VM_FAULT_OOM) { in do_page_fault()
726 * userspace (which will retry the fault, or kill us if we got in do_page_fault()
735 if (fault & VM_FAULT_SIGBUS) { in do_page_fault()
738 * this page fault. in do_page_fault()
741 } else if (fault & (VM_FAULT_HWPOISON_LARGE | VM_FAULT_HWPOISON)) { in do_page_fault()
745 if (fault & VM_FAULT_HWPOISON_LARGE) in do_page_fault()
746 lsb = hstate_index_to_shift(VM_FAULT_GET_HINDEX(fault)); in do_page_fault()
752 * from the pkey that caused the fault. in do_page_fault()
758 * 5. T1 : enters fault handler, takes mmap_lock, etc... in do_page_fault()
801 return 1; /* "fault" */ in do_bad()
848 { do_bad, SIGKILL, SI_KERNEL, "ttbr address size fault" },
849 { do_bad, SIGKILL, SI_KERNEL, "level 1 address size fault" },
850 { do_bad, SIGKILL, SI_KERNEL, "level 2 address size fault" },
851 { do_bad, SIGKILL, SI_KERNEL, "level 3 address size fault" },
852 { do_translation_fault, SIGSEGV, SEGV_MAPERR, "level 0 translation fault" },
853 { do_translation_fault, SIGSEGV, SEGV_MAPERR, "level 1 translation fault" },
854 { do_translation_fault, SIGSEGV, SEGV_MAPERR, "level 2 translation fault" },
855 { do_translation_fault, SIGSEGV, SEGV_MAPERR, "level 3 translation fault" },
856 { do_page_fault, SIGSEGV, SEGV_ACCERR, "level 0 access flag fault" },
857 { do_page_fault, SIGSEGV, SEGV_ACCERR, "level 1 access flag fault" },
858 { do_page_fault, SIGSEGV, SEGV_ACCERR, "level 2 access flag fault" },
859 { do_page_fault, SIGSEGV, SEGV_ACCERR, "level 3 access flag fault" },
860 { do_page_fault, SIGSEGV, SEGV_ACCERR, "level 0 permission fault" },
861 { do_page_fault, SIGSEGV, SEGV_ACCERR, "level 1 permission fault" },
862 { do_page_fault, SIGSEGV, SEGV_ACCERR, "level 2 permission fault" },
863 { do_page_fault, SIGSEGV, SEGV_ACCERR, "level 3 permission fault" },
865 { do_tag_check_fault, SIGSEGV, SEGV_MTESERR, "synchronous tag check fault" },
881 { do_alignment_fault, SIGBUS, BUS_ADRALN, "alignment fault" },
889 { do_bad, SIGKILL, SI_KERNEL, "level -1 address size fault" },
891 { do_translation_fault, SIGSEGV, SEGV_MAPERR, "level -1 translation fault" },
897 { do_bad, SIGKILL, SI_KERNEL, "Unsupported atomic hardware update fault" },
900 { do_bad, SIGKILL, SI_KERNEL, "implementation fault (lockdown abort)" },
901 { do_bad, SIGBUS, BUS_OBJERR, "implementation fault (unsupported exclusive)" },
909 { do_bad, SIGKILL, SI_KERNEL, "section domain fault" },
910 { do_bad, SIGKILL, SI_KERNEL, "page domain fault" },
926 * At this point we have an unrecognized fault type whose tag bits may in do_mem_abort()
1011 * Used during anonymous page fault handling.