Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 57eafdc2 authored by Al Viro's avatar Al Viro Committed by Linus Torvalds
Browse files

[PATCH] amd64: task_stack_page()



Signed-off-by: default avatarAl Viro <viro@zeniv.linux.org.uk>
Signed-off-by: default avatarAndrew Morton <akpm@osdl.org>
Signed-off-by: default avatarLinus Torvalds <torvalds@osdl.org>
parent bb049232
Loading
Loading
Loading
Loading
+3 −3
Original line number Diff line number Diff line
@@ -451,7 +451,7 @@ int copy_thread(int nr, unsigned long clone_flags, unsigned long rsp,
	struct task_struct *me = current;

	childregs = ((struct pt_regs *)
			(THREAD_SIZE + (unsigned long) p->thread_info)) - 1;
			(THREAD_SIZE + task_stack_page(p))) - 1;
	*childregs = *regs;

	childregs->rax = 0;
@@ -590,7 +590,7 @@ __switch_to(struct task_struct *prev_p, struct task_struct *next_p)
	write_pda(oldrsp, next->userrsp); 
	write_pda(pcurrent, next_p); 
	write_pda(kernelstack,
	    (unsigned long)next_p->thread_info + THREAD_SIZE - PDA_STACKOFFSET);
		  task_stack_page(next_p) + THREAD_SIZE - PDA_STACKOFFSET);

	/*
	 * Now maybe reload the debug registers
@@ -704,7 +704,7 @@ unsigned long get_wchan(struct task_struct *p)

	if (!p || p == current || p->state==TASK_RUNNING)
		return 0; 
	stack = (unsigned long)p->thread_info; 
	stack = (unsigned long)task_stack_page(p);
	if (p->thread.rsp < stack || p->thread.rsp > stack+THREAD_SIZE)
		return 0;
	fp = *(u64 *)(p->thread.rsp);
+1 −1
Original line number Diff line number Diff line
@@ -776,7 +776,7 @@ static int __cpuinit do_boot_cpu(int cpu, int apicid)

	if (c_idle.idle) {
		c_idle.idle->thread.rsp = (unsigned long) (((struct pt_regs *)
			(THREAD_SIZE + (unsigned long) c_idle.idle->thread_info)) - 1);
			(THREAD_SIZE +  task_stack_page(c_idle.idle))) - 1);
		init_idle(c_idle.idle, cpu);
		goto do_rest;
	}