Ignore:
File:
1 edited

Legend:

Unmodified
Added
Removed
  • kernel/arch/sparc64/src/proc/sun4u/scheduler.c

    r2277e03 r5f678b1c  
    5151void before_thread_runs_arch(void)
    5252{
    53         if (THREAD->uspace) {
    54                 uint64_t sp;
    55 
     53        if ((THREAD->flags & THREAD_FLAG_USPACE)) {
    5654                /*
    5755                 * Write kernel stack address to %g6 of the alternate and
     
    6563                 *   before it explicitly uses %g7.
    6664                 */
    67                 sp = (uintptr_t) THREAD->kstack + STACK_SIZE - STACK_BIAS;
     65                uint64_t sp = (uintptr_t) THREAD->kstack + STACK_SIZE -
     66                    (STACK_BIAS + ALIGN_UP(STACK_ITEM_SIZE, STACK_ALIGNMENT));
    6867                write_to_ig_g6(sp);
    6968                write_to_ag_g6(sp);
     
    7574void after_thread_ran_arch(void)
    7675{
    77         if (THREAD->uspace) {
    78                 /* sample the state of the userspace window buffer */
    79                 THREAD->arch.uspace_window_buffer =
    80                     (uint8_t *) read_from_ag_g7();
     76        if ((THREAD->flags & THREAD_FLAG_USPACE)) {
     77                /* sample the state of the userspace window buffer */   
     78                THREAD->arch.uspace_window_buffer = (uint8_t *) read_from_ag_g7();
    8179        }
    8280}
Note: See TracChangeset for help on using the changeset viewer.