Lines Matching +full:architecturally +full:- +full:defined

1 // SPDX-License-Identifier: GPL-2.0-only
6 * Copyright (C) 1995-2004 Russell King
21 #include <linux/page-flags.h>
35 #include <asm/debug-monitors.h>
103 esr_to_fault_info(esr)->name); in mem_abort_decode()
113 return __pa_symbol(mm->pgd); in mm_to_pgd_phys()
115 return (unsigned long)virt_to_phys(mm->pgd); in mm_to_pgd_phys()
129 mm = current->active_mm; in show_pte()
144 pr_alert("%s pgtable: %luk pages, %llu-bit VAs, pgdp=%016lx\n", in show_pte()
193 * like set_pte_at(), the PTE is never changed from no-exec to exec here.
226 /* Invalidate a stale read-only entry */ in ptep_set_access_flags()
255 (regs->pstate & PSR_PAN_BIT); in is_el1_permission_fault()
319 kasan_report(addr, 0, is_write, regs->pc); in report_tag_fault()
380 msg = "write to read-only memory"; in __do_kernel_fault()
382 msg = "execute from non-executable memory"; in __do_kernel_fault()
399 current->thread.fault_address = address; in set_thread_esr()
403 * From userspace's point of view, kernel-only mappings don't exist in set_thread_esr()
413 if (!is_ttbr0_addr(current->thread.fault_address)) { in set_thread_esr()
419 * We explicitly clear bits which are architecturally in set_thread_esr()
432 * All other bits are architecturally RES0 for faults in set_thread_esr()
451 current->thread.fault_code = esr; in set_thread_esr()
467 arm64_force_sig_fault(inf->sig, inf->code, far, inf->name); in do_bad_area()
489 if (unlikely(vma->vm_start > addr)) { in __do_page_fault()
490 if (!(vma->vm_flags & VM_GROWSDOWN)) in __do_page_fault()
500 if (!(vma->vm_flags & vm_flags)) in __do_page_fault()
523 struct mm_struct *mm = current->mm; in do_page_fault()
543 * vm_flags tells us what bits we must have in vma->vm_flags in do_page_fault()
545 * vma->vm_flags & vm_flags and returns an error if the in do_page_fault()
571 if (!search_exception_tables(regs->pc)) in do_page_fault()
580 * validly references user space from well defined areas of the code, in do_page_fault()
584 if (!user_mode(regs) && !search_exception_tables(regs->pc)) in do_page_fault()
595 if (!user_mode(regs) && !search_exception_tables(regs->pc)) { in do_page_fault()
639 * oom-killed). in do_page_fault()
652 arm64_force_sig_fault(SIGBUS, BUS_ADRERR, far, inf->name); in do_page_fault()
660 arm64_force_sig_mceerr(BUS_MCEERR_AR, far, lsb, inf->name); in do_page_fault()
668 far, inf->name); in do_page_fault()
715 * APEI claimed this as a firmware-first notification. in do_sea()
731 arm64_notify_die(inf->name, regs, inf->sig, inf->code, siaddr, esr); in do_sea()
821 if (!inf->fn(far, esr, regs)) in do_mem_abort()
825 die_kernel_fault(inf->name, addr, esr, regs); in do_mem_abort()
829 * have been defined as UNKNOWN. Therefore we only expose the untagged in do_mem_abort()
832 arm64_notify_die(inf->name, regs, inf->sig, inf->code, addr, esr); in do_mem_abort()
849 * See traps.c and debug-monitors.c:debug_traps_init().
853 { do_bad, SIGTRAP, TRAP_HWBKPT, "hardware single-step" },
907 if (inf->fn(addr_if_watchpoint, esr, regs)) { in do_debug_exception()
908 arm64_notify_die(inf->name, regs, inf->sig, inf->code, pc, esr); in do_debug_exception()
928 if (vma->vm_flags & VM_MTE) in alloc_zeroed_user_highpage_movable()
937 set_bit(PG_mte_tagged, &page->flags); in tag_clear_highpage()