Lines Matching refs:sp
1110 static void setup_ksp_vsid(struct task_struct *p, unsigned long sp) in setup_ksp_vsid() argument
1117 sp_vsid = get_kernel_vsid(sp, MMU_SEGSIZE_1T) in setup_ksp_vsid()
1120 sp_vsid = get_kernel_vsid(sp, MMU_SEGSIZE_256M) in setup_ksp_vsid()
1142 unsigned long sp = (unsigned long)task_stack_page(p) + THREAD_SIZE; in copy_thread() local
1145 sp -= sizeof(struct pt_regs); in copy_thread()
1146 childregs = (struct pt_regs *) sp; in copy_thread()
1151 childregs->gpr[1] = sp + sizeof(struct pt_regs); in copy_thread()
1183 sp -= STACK_FRAME_OVERHEAD; in copy_thread()
1193 ((unsigned long *)sp)[0] = 0; in copy_thread()
1194 sp -= sizeof(struct pt_regs); in copy_thread()
1195 kregs = (struct pt_regs *) sp; in copy_thread()
1196 sp -= STACK_FRAME_OVERHEAD; in copy_thread()
1197 p->thread.ksp = sp; in copy_thread()
1211 setup_ksp_vsid(p, sp); in copy_thread()
1228 void start_thread(struct pt_regs *regs, unsigned long start, unsigned long sp) in start_thread() argument
1248 regs->gpr[1] = sp; in start_thread()
1476 static inline int valid_irq_stack(unsigned long sp, struct task_struct *p, in valid_irq_stack() argument
1488 if (sp >= stack_page + sizeof(struct thread_struct) in valid_irq_stack()
1489 && sp <= stack_page + THREAD_SIZE - nbytes) in valid_irq_stack()
1493 if (sp >= stack_page + sizeof(struct thread_struct) in valid_irq_stack()
1494 && sp <= stack_page + THREAD_SIZE - nbytes) in valid_irq_stack()
1500 int validate_sp(unsigned long sp, struct task_struct *p, in validate_sp() argument
1505 if (sp >= stack_page + sizeof(struct thread_struct) in validate_sp()
1506 && sp <= stack_page + THREAD_SIZE - nbytes) in validate_sp()
1509 return valid_irq_stack(sp, p, nbytes); in validate_sp()
1516 unsigned long ip, sp; in get_wchan() local
1522 sp = p->thread.ksp; in get_wchan()
1523 if (!validate_sp(sp, p, STACK_FRAME_OVERHEAD)) in get_wchan()
1527 sp = *(unsigned long *)sp; in get_wchan()
1528 if (!validate_sp(sp, p, STACK_FRAME_OVERHEAD)) in get_wchan()
1531 ip = ((unsigned long *)sp)[STACK_FRAME_LR_SAVE]; in get_wchan()
1543 unsigned long sp, ip, lr, newsp; in show_stack() local
1552 sp = (unsigned long) stack; in show_stack()
1555 if (sp == 0) { in show_stack()
1557 sp = current_stack_pointer(); in show_stack()
1559 sp = tsk->thread.ksp; in show_stack()
1565 if (!validate_sp(sp, tsk, STACK_FRAME_OVERHEAD)) in show_stack()
1568 stack = (unsigned long *) sp; in show_stack()
1572 printk("["REG"] ["REG"] %pS", sp, ip, (void *)ip); in show_stack()
1590 if (validate_sp(sp, tsk, STACK_INT_FRAME_SIZE) in show_stack()
1593 (sp + STACK_FRAME_OVERHEAD); in show_stack()
1600 sp = newsp; in show_stack()
1632 unsigned long arch_align_stack(unsigned long sp) in arch_align_stack() argument
1635 sp -= get_random_int() & ~PAGE_MASK; in arch_align_stack()
1636 return sp & ~0xf; in arch_align_stack()