Changeset 2b95d13 in mainline for kernel/generic
- Timestamp:
- 2013-03-12T21:07:15Z (13 years ago)
- Branches:
- lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
- Children:
- 606f6a1
- Parents:
- 976c434 (diff), eceff5f (diff)
Note: this is a merge changeset, the changes displayed below correspond to the merge itself.
Use the(diff)
links above to see all the changes relative to each parent. - Location:
- kernel/generic/src
- Files:
-
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
kernel/generic/src/interrupt/interrupt.c
r976c434 r2b95d13 54 54 #include <proc/thread.h> 55 55 #include <arch/cycle.h> 56 #include <arch/stack.h> 56 57 #include <str.h> 57 58 #include <trace.h> … … 222 223 /* 223 224 * The istate structure should be right at the bottom of the kernel 224 * stack.225 * memory stack. 225 226 */ 226 return (istate_t *) ((uint8_t *) 227 thread->kstack + STACK_SIZE - sizeof(istate_t)); 227 return (istate_t *) &thread->kstack[MEM_STACK_SIZE - sizeof(istate_t)]; 228 228 } 229 229 -
kernel/generic/src/main/kinit.c
r976c434 r2b95d13 250 250 CAP_IO_MANAGER | CAP_IRQ_REG); 251 251 252 if (!ipc_phone_0) 252 if (!ipc_phone_0) { 253 253 ipc_phone_0 = &programs[i].task->answerbox; 254 /* 255 * Hold the first task so that the 256 * ipc_phone_0 remains a valid pointer 257 * even if the first task exits for 258 * whatever reason. 259 */ 260 task_hold(programs[i].task); 261 } 254 262 } 255 263 -
kernel/generic/src/proc/task.c
r976c434 r2b95d13 125 125 { 126 126 size_t tasks_left; 127 128 if (ipc_phone_0) { 129 task_t *task_0 = ipc_phone_0->task; 130 ipc_phone_0 = NULL; 131 /* 132 * The first task is held by kinit(), we need to release it or 133 * it will never finish cleanup. 134 */ 135 task_release(task_0); 136 } 127 137 128 138 /* Repeat until there are any tasks except TASK */
Note:
See TracChangeset
for help on using the changeset viewer.