Lines Matching +full:ext +full:- +full:regs

1 // SPDX-License-Identifier: GPL-2.0
48 info->type = type; in in_stack()
49 info->begin = stack; in in_stack()
50 info->end = stack + THREAD_SIZE; in in_stack()
64 unsigned long stack = S390_lowcore.async_stack - STACK_INIT_OFFSET; in in_irq_stack()
71 unsigned long stack = S390_lowcore.nodat_stack - STACK_INIT_OFFSET; in in_nodat_stack()
78 unsigned long stack = S390_lowcore.mcck_stack - STACK_INIT_OFFSET; in in_mcck_stack()
85 unsigned long stack = S390_lowcore.restart_stack - STACK_INIT_OFFSET; in in_restart_stack()
100 /* Check per-task stack */ in get_stack_info()
107 /* Check per-cpu stacks */ in get_stack_info()
120 if (*visit_mask & (1UL << info->type)) in get_stack_info()
122 *visit_mask |= 1UL << info->type; in get_stack_info()
125 info->type = STACK_TYPE_UNKNOWN; in get_stack_info()
126 return -EINVAL; in get_stack_info()
142 static void show_last_breaking_event(struct pt_regs *regs) in show_last_breaking_event() argument
144 printk("Last Breaking-Event-Address:\n"); in show_last_breaking_event()
145 printk(" [<%016lx>] ", regs->last_break); in show_last_breaking_event()
146 if (user_mode(regs)) { in show_last_breaking_event()
147 print_vma_addr(KERN_CONT, regs->last_break); in show_last_breaking_event()
150 pr_cont("%pSR\n", (void *)regs->last_break); in show_last_breaking_event()
154 void show_registers(struct pt_regs *regs) in show_registers() argument
156 struct psw_bits *psw = &psw_bits(regs->psw); in show_registers()
159 mode = user_mode(regs) ? "User" : "Krnl"; in show_registers()
160 printk("%s PSW : %px %px", mode, (void *)regs->psw.mask, (void *)regs->psw.addr); in show_registers()
161 if (!user_mode(regs)) in show_registers()
162 pr_cont(" (%pSR)", (void *)regs->psw.addr); in show_registers()
165 "P:%x AS:%x CC:%x PM:%x", psw->per, psw->dat, psw->io, psw->ext, in show_registers()
166 psw->key, psw->mcheck, psw->wait, psw->pstate, psw->as, psw->cc, psw->pm); in show_registers()
167 pr_cont(" RI:%x EA:%x\n", psw->ri, psw->eaba); in show_registers()
169 regs->gprs[0], regs->gprs[1], regs->gprs[2], regs->gprs[3]); in show_registers()
171 regs->gprs[4], regs->gprs[5], regs->gprs[6], regs->gprs[7]); in show_registers()
173 regs->gprs[8], regs->gprs[9], regs->gprs[10], regs->gprs[11]); in show_registers()
175 regs->gprs[12], regs->gprs[13], regs->gprs[14], regs->gprs[15]); in show_registers()
176 show_code(regs); in show_registers()
179 void show_regs(struct pt_regs *regs) in show_regs() argument
182 show_registers(regs); in show_regs()
184 if (!user_mode(regs)) in show_regs()
185 show_stack(NULL, (unsigned long *) regs->gprs[15], KERN_DEFAULT); in show_regs()
186 show_last_breaking_event(regs); in show_regs()
191 void __noreturn die(struct pt_regs *regs, const char *str) in die() argument
201 printk("%s: %04x ilc:%d [#%d] ", str, regs->int_code & 0xffff, in die()
202 regs->int_code >> 17, ++die_counter); in die()
212 notify_die(DIE_OOPS, str, regs, 0, regs->int_code & 0xffff, SIGSEGV); in die()
214 show_regs(regs); in die()