Lines Matching +full:user +full:- +full:level
7 * Copyright (C) 1994 - 1999 by Ralf Baechle
14 * Copyright (C) 2001 - 2013 Tensilica Inc.
75 #define USER 0x02 macro
78 { EXCCAUSE_COPROCESSOR ## x ## _DISABLED, USER|KRNL, fast_coprocessor },\
90 { EXCCAUSE_ILLEGAL_INSTRUCTION, USER, fast_illegal_instruction_user },
93 { EXCCAUSE_SYSTEM_CALL, USER, fast_syscall_user },
97 { EXCCAUSE_LOAD_STORE_ERROR, USER|KRNL, fast_load_store },
102 { EXCCAUSE_ALLOCA, USER|KRNL, fast_alloca },
109 { EXCCAUSE_UNALIGNED, USER, fast_unaligned },
116 { EXCCAUSE_ITLB_MISS, USER|KRNL, fast_second_level_miss},
117 { EXCCAUSE_DTLB_MISS, USER|KRNL, fast_second_level_miss},
119 { EXCCAUSE_STORE_CACHE_ATTRIBUTE, USER|KRNL, fast_store_prohibited },
159 { -1, -1, 0 }
164 * 1. it contains three dispatch tables (fast_user, fast_kernel, default-c)
185 if (copy_from_user(buf, (void __user *)(regs->pc & -16), sizeof(buf)) == 0) { in dump_user_code()
198 * Unhandled Exceptions. Kill user task or panic if in kernel space.
203 __die_if_kernel("Caught unhandled exception - should not happen", in do_unhandled()
206 /* If in user mode, send SIGILL signal to current process */ in do_unhandled()
208 "(pid = %d, pc = %#010lx) - should not happen\n" in do_unhandled()
210 current->comm, task_pid_nr(current), regs->pc, in do_unhandled()
211 regs->exccause); in do_unhandled()
217 * Multi-hit exception. This if fatal!
231 #define IS_POW2(v) (((v) & ((v) - 1)) == 0)
235 #warning "Fake NMI is requested for PMM, but there are other IRQs at or above its level."
295 unsigned level; in do_interrupt() local
297 for (level = LOCKLEVEL; level > 0; --level) { in do_interrupt()
298 if (int_at_level & int_level_mask[level]) { in do_interrupt()
299 int_at_level &= int_level_mask[level]; in do_interrupt()
303 unhandled |= int_level_mask[level]; in do_interrupt()
308 if (level == 0) in do_interrupt()
312 unhandled ^= (int_at_level & -int_at_level); in do_interrupt()
327 if (copy_from_user(buf, (void __user *)regs->pc + 2, 5)) in check_div0()
331 p = (const u8 *)regs->pc + 2; in check_div0()
353 if (regs->pc == current_thread_info()->ps_woe_fix_addr) in do_illegal_instruction()
354 regs->ps &= ~PS_WOE_MASK; in do_illegal_instruction()
363 /* If in user mode, send SIGILL signal to current process. */ in do_illegal_instruction()
366 current->comm, task_pid_nr(current), regs->pc); in do_illegal_instruction()
373 force_sig_fault(SIGFPE, FPE_INTDIV, (void __user *)regs->pc); in do_div0()
383 regs->excvaddr, current->comm, in do_load_store()
384 task_pid_nr(current), regs->pc); in do_load_store()
385 force_sig_fault(SIGBUS, BUS_ADRERR, (void *)regs->excvaddr); in do_load_store()
390 * Handle unaligned memory accesses from user space. Kill task.
393 * accesses causes from user space.
403 regs->excvaddr, current->comm, in do_unaligned_user()
404 task_pid_nr(current), regs->pc); in do_unaligned_user()
405 force_sig_fault(SIGBUS, BUS_ADRALN, (void *) regs->excvaddr); in do_unaligned_user()
432 /* If in user mode, send SIGTRAP signal to current process */ in do_debug()
446 /* Set exception C handler - for temporary use when probing exceptions */
467 this_cpu_ptr(&debug_table)->debug_exception = debug_exception; in trap_init_debug()
478 * - fast user first dispatch table for user exceptions
479 * - fast kernel first dispatch table for kernel exceptions
480 * - default C-handler C-handler called by the default fast handler.
506 if ((fast & USER) != 0) in trap_init()
538 pr_cont(" %08lx", regs->areg[i]); in show_regs()
542 regs->pc, regs->ps, regs->depc, regs->excvaddr); in show_regs()
544 regs->lbeg, regs->lend, regs->lcount, regs->sar); in show_regs()
547 regs->windowbase, regs->windowstart, regs->wmask, in show_regs()
548 regs->syscall); in show_regs()
555 if (kernel_text_address(frame->pc)) in show_trace_cb()
557 loglvl, frame->pc, (void *)frame->pc); in show_trace_cb()
587 while (sf->off < sf->len) { in show_stack_fragment_cb()
589 size_t line_len = sf->len - sf->off > STACK_DUMP_LINE_SIZE ? in show_stack_fragment_cb()
590 STACK_DUMP_LINE_SIZE : sf->len - sf->off; in show_stack_fragment_cb()
591 bool arrow = sf->off == 0; in show_stack_fragment_cb()
593 if (frame && frame->sp == (unsigned long)(sf->sp + sf->off)) in show_stack_fragment_cb()
596 __memcpy(line, sf->sp + sf->off, line_len); in show_stack_fragment_cb()
597 print_hex_dump(sf->loglvl, arrow ? "> " : " ", DUMP_PREFIX_NONE, in show_stack_fragment_cb()
600 sf->off += STACK_DUMP_LINE_SIZE; in show_stack_fragment_cb()
614 sf.len = min((-(size_t)sp) & (THREAD_SIZE - STACK_DUMP_ENTRY_SIZE), in show_stack()
643 show_stack(NULL, (unsigned long *)regs->areg[1], KERN_INFO); in die()