Lines Matching +full:user +full:- +full:level
7 * Copyright (C) 1994 - 1999 by Ralf Baechle
14 * Copyright (C) 2001 - 2013 Tensilica Inc.
73 #define USER 0x02 macro
76 { EXCCAUSE_COPROCESSOR ## x ## _DISABLED, USER|KRNL, fast_coprocessor },\
88 { EXCCAUSE_ILLEGAL_INSTRUCTION, USER, fast_illegal_instruction_user },
91 { EXCCAUSE_SYSTEM_CALL, USER, fast_syscall_user },
97 { EXCCAUSE_ALLOCA, USER|KRNL, fast_alloca },
103 { EXCCAUSE_UNALIGNED, USER, fast_unaligned },
110 { EXCCAUSE_ITLB_MISS, USER|KRNL, fast_second_level_miss},
111 { EXCCAUSE_DTLB_MISS, USER|KRNL, fast_second_level_miss},
113 { EXCCAUSE_STORE_CACHE_ATTRIBUTE, USER|KRNL, fast_store_prohibited },
153 { -1, -1, 0 }
158 * 1. it contains three dispatch tables (fast_user, fast_kernel, default-c)
175 * Unhandled Exceptions. Kill user task or panic if in kernel space.
180 __die_if_kernel("Caught unhandled exception - should not happen", in do_unhandled()
183 /* If in user mode, send SIGILL signal to current process */ in do_unhandled()
185 "(pid = %d, pc = %#010lx) - should not happen\n" in do_unhandled()
187 current->comm, task_pid_nr(current), regs->pc, in do_unhandled()
188 regs->exccause); in do_unhandled()
193 * Multi-hit exception. This if fatal!
207 #define IS_POW2(v) (((v) & ((v) - 1)) == 0)
211 #warning "Fake NMI is requested for PMM, but there are other IRQs at or above its level."
271 unsigned level; in do_interrupt() local
273 for (level = LOCKLEVEL; level > 0; --level) { in do_interrupt()
274 if (int_at_level & int_level_mask[level]) { in do_interrupt()
275 int_at_level &= int_level_mask[level]; in do_interrupt()
279 unhandled |= int_level_mask[level]; in do_interrupt()
284 if (level == 0) in do_interrupt()
288 unhandled ^= (int_at_level & -int_at_level); in do_interrupt()
303 if (copy_from_user(buf, (void __user *)regs->pc + 2, 5)) in check_div0()
307 p = (const u8 *)regs->pc + 2; in check_div0()
329 if (regs->pc == current_thread_info()->ps_woe_fix_addr) in do_illegal_instruction()
330 regs->ps &= ~PS_WOE_MASK; in do_illegal_instruction()
339 /* If in user mode, send SIGILL signal to current process. */ in do_illegal_instruction()
342 current->comm, task_pid_nr(current), regs->pc); in do_illegal_instruction()
349 force_sig_fault(SIGFPE, FPE_INTDIV, (void __user *)regs->pc); in do_div0()
353 * Handle unaligned memory accesses from user space. Kill task.
356 * accesses causes from user space.
365 current->thread.bad_vaddr = regs->excvaddr; in do_unaligned_user()
366 current->thread.error_code = -3; in do_unaligned_user()
369 regs->excvaddr, current->comm, in do_unaligned_user()
370 task_pid_nr(current), regs->pc); in do_unaligned_user()
371 force_sig_fault(SIGBUS, BUS_ADRALN, (void *) regs->excvaddr); in do_unaligned_user()
399 /* If in user mode, send SIGTRAP signal to current process */ in do_debug()
413 /* Set exception C handler - for temporary use when probing exceptions */
434 this_cpu_ptr(&debug_table)->debug_exception = debug_exception; in trap_init_debug()
445 * - fast user first dispatch table for user exceptions
446 * - fast kernel first dispatch table for kernel exceptions
447 * - default C-handler C-handler called by the default fast handler.
473 if ((fast & USER) != 0) in trap_init()
505 pr_cont(" %08lx", regs->areg[i]); in show_regs()
509 regs->pc, regs->ps, regs->depc, regs->excvaddr); in show_regs()
511 regs->lbeg, regs->lend, regs->lcount, regs->sar); in show_regs()
514 regs->windowbase, regs->windowstart, regs->wmask, in show_regs()
515 regs->syscall); in show_regs()
522 if (kernel_text_address(frame->pc)) in show_trace_cb()
524 loglvl, frame->pc, (void *)frame->pc); in show_trace_cb()
549 len = min((-(size_t)sp) & (THREAD_SIZE - STACK_DUMP_ENTRY_SIZE), in show_stack()
575 show_stack(NULL, (unsigned long *)regs->areg[1], KERN_INFO); in die()