Changeset 03427d0 in mainline for arch/ia64/src/proc/scheduler.c
- Timestamp:
- 2006-03-02T17:57:45Z (19 years ago)
- Branches:
- lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
- Children:
- 9459255
- Parents:
- 9ad03fe
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
arch/ia64/src/proc/scheduler.c
r9ad03fe r03427d0 34 34 #include <align.h> 35 35 36 /** Ensure that thread's kernel stack is locked in TLB. */36 /** Record kernel stack address in ar.k7 and make sure it is mapped in DTR. */ 37 37 void before_thread_runs_arch(void) 38 38 { … … 43 43 if ((__address) THREAD->kstack < base || (__address) THREAD->kstack > base + (1<<KERNEL_PAGE_WIDTH)) { 44 44 /* 45 * Kernel stack of this thread is not locked in DTLB. 46 * First, make sure it is not mapped already. 47 * If not, fill respective tranlsation register. 45 * Kernel stack of this thread is not mapped by DTR[TR_KERNEL]. 46 * Use DTR[TR_KSTACK] to map it. 48 47 */ 49 48 dtlb_kernel_mapping_insert((__address) THREAD->kstack, KA2PA(THREAD->kstack), true, DTR_KSTACK); 50 49 } 50 51 /* 52 * Record address of kernel stack to ar.k7 53 * where it will be found after switch 54 * from userspace. 55 */ 56 __asm__ volatile ("mov ar.k7 = %0\n" : : "r" (THREAD->kstack)); 51 57 } 52 58
Note:
See TracChangeset
for help on using the changeset viewer.