Subversion Repositories HelenOS

Rev

Rev 1879 | Rev 2054 | 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)) {