Rev 1879 | Rev 2049 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 1879 | Rev 1890 | ||
---|---|---|---|
Line 118... | Line 118... | ||
118 | dtlb_demap(TLB_DEMAP_PAGE, TLB_DEMAP_NUCLEUS, (uintptr_t) THREAD->kstack); |
118 | dtlb_demap(TLB_DEMAP_PAGE, TLB_DEMAP_NUCLEUS, (uintptr_t) THREAD->kstack); |
119 | } |
119 | } |
120 | 120 | ||
121 | if ((THREAD->flags & THREAD_FLAG_USPACE)) { |
121 | if ((THREAD->flags & THREAD_FLAG_USPACE)) { |
122 | /* |
122 | /* |
123 | * If this thread executes also in userspace, we have to force all |
123 | * If this thread executes also in userspace, we have to |
124 | * its still-active userspace windows into the userspace window buffer |
- | |
125 | * and demap the buffer from DTLB. |
124 | * demap the userspace window buffer from DTLB. |
126 | */ |
125 | */ |
127 | ASSERT(THREAD->arch.uspace_window_buffer); |
126 | ASSERT(THREAD->arch.uspace_window_buffer); |
128 | 127 | ||
129 | uintptr_t uw_buf = ALIGN_DOWN((uintptr_t) THREAD->arch.uspace_window_buffer, PAGE_SIZE); |
128 | uintptr_t uw_buf = ALIGN_DOWN((uintptr_t) THREAD->arch.uspace_window_buffer, PAGE_SIZE); |
130 | if (!overlaps(uw_buf, PAGE_SIZE, base, 1<<KERNEL_PAGE_WIDTH)) { |
129 | if (!overlaps(uw_buf, PAGE_SIZE, base, 1<<KERNEL_PAGE_WIDTH)) { |