diff options
| author | Jeff Garzik <jgarzik@pobox.com> | 2005-09-23 19:03:21 -0400 |
|---|---|---|
| committer | Jeff Garzik <jgarzik@pobox.com> | 2005-09-23 19:03:21 -0400 |
| commit | 536f8098026bde1368bbfcbcb9682a7637b73df2 (patch) | |
| tree | cf83d2e1afa503b6aeba103b55cd1da0af4e7a4c /arch/um/kernel/process_kern.c | |
| parent | e86ee6682b649183c11013a98be02f25e9ae399d (diff) | |
| parent | 3fd07d3bf0077dcc0f5a33d2eb1938ea050da8da (diff) | |
Merge /spare/repo/linux-2.6/
Diffstat (limited to 'arch/um/kernel/process_kern.c')
| -rw-r--r-- | arch/um/kernel/process_kern.c | 19 |
1 files changed, 17 insertions, 2 deletions
diff --git a/arch/um/kernel/process_kern.c b/arch/um/kernel/process_kern.c index c23d8a08d0ff..39cf568ccfaf 100644 --- a/arch/um/kernel/process_kern.c +++ b/arch/um/kernel/process_kern.c @@ -113,8 +113,23 @@ void set_current(void *t) void *_switch_to(void *prev, void *next, void *last) { - return(CHOOSE_MODE(switch_to_tt(prev, next), - switch_to_skas(prev, next))); + struct task_struct *from = prev; + struct task_struct *to= next; + + to->thread.prev_sched = from; + set_current(to); + + do { + current->thread.saved_task = NULL ; + CHOOSE_MODE_PROC(switch_to_tt, switch_to_skas, prev, next); + if(current->thread.saved_task) + show_regs(&(current->thread.regs)); + next= current->thread.saved_task; + prev= current; + } while(current->thread.saved_task); + + return(current->thread.prev_sched); + } void interrupt_end(void) |
