Changeset b6d4566 in mainline for arch/ia64/src/proc/scheduler.c


Ignore:
Timestamp:
2006-03-27T16:56:51Z (19 years ago)
Author:
Jakub Jermar <jakub@…>
Branches:
lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
Children:
ff75d34
Parents:
50fe620
Message:

CPU stacks must have two frames on ia64.
Make sure both thread stack frames are mapped in before_thread_runs_arch().
Take STACK_FRAMES into account during kernel memory layout initialization in main_bsp().

File:
1 edited

Legend:

Unmodified
Added
Removed
  • arch/ia64/src/proc/scheduler.c

    r50fe620 rb6d4566  
    4444        base = ALIGN_DOWN(config.base, 1<<KERNEL_PAGE_WIDTH);
    4545
    46         if ((__address) THREAD->kstack < base || (__address) THREAD->kstack > base + (1<<KERNEL_PAGE_WIDTH)) {
     46        if ((__address) THREAD->kstack < base || (__address) THREAD->kstack > base + (1<<(KERNEL_PAGE_WIDTH))) {
    4747                /*
    4848                 * Kernel stack of this thread is not mapped by DTR[TR_KERNEL].
    49                  * Use DTR[TR_KSTACK] to map it.
     49                 * Use DTR[TR_KSTACK1] and DTR[TR_KSTACK2] to map it.
    5050                 */
    51                  dtlb_kernel_mapping_insert((__address) THREAD->kstack, KA2PA(THREAD->kstack), true, DTR_KSTACK);
     51                dtlb_kernel_mapping_insert((__address) THREAD->kstack, KA2PA(THREAD->kstack), true, DTR_KSTACK1);
     52                dtlb_kernel_mapping_insert((__address) THREAD->kstack + PAGE_SIZE, KA2PA(THREAD->kstack) + FRAME_SIZE, true, DTR_KSTACK2);
    5253        }
    5354       
Note: See TracChangeset for help on using the changeset viewer.