Commit aeffbd1b authored by Paul Mackerras's avatar Paul Mackerras

PPC32: Make switch_to return the previous task in the `last' argument

parent 5a983302
......@@ -197,10 +197,12 @@ dump_fpu(struct pt_regs *regs, elf_fpregset_t *fpregs)
return 1;
}
void __switch_to(struct task_struct *prev, struct task_struct *new)
struct task_struct *__switch_to(struct task_struct *prev,
struct task_struct *new)
{
struct thread_struct *new_thread, *old_thread;
unsigned long s;
struct task_struct *last;
local_irq_save(s);
#if CHECK_STACK
......@@ -244,8 +246,9 @@ void __switch_to(struct task_struct *prev, struct task_struct *new)
new->thread.regs->msr |= MSR_VEC;
new_thread = &new->thread;
old_thread = &current->thread;
_switch(old_thread, new_thread);
last = _switch(old_thread, new_thread);
local_irq_restore(s);
return last;
}
void show_regs(struct pt_regs * regs)
......
......@@ -86,8 +86,9 @@ struct device_node;
extern void note_scsi_host(struct device_node *, void *);
struct task_struct;
extern void __switch_to(struct task_struct *, struct task_struct *);
#define switch_to(prev, next, last) __switch_to((prev), (next))
extern struct task_struct *__switch_to(struct task_struct *,
struct task_struct *);
#define switch_to(prev, next, last) ((last) = __switch_to((prev), (next)))
struct thread_struct;
extern struct task_struct *_switch(struct thread_struct *prev,
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment