Subversion Repositories HelenOS-historic

Rev

Rev 1178 | Rev 1227 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 1178 Rev 1179
Line 222... Line 222...
222
         */
222
         */
223
        spinlock_unlock(&AS->lock);
223
        spinlock_unlock(&AS->lock);
224
        return 0;
224
        return 0;
225
    }
225
    }
226
 
226
 
-
 
227
    ASSERT(!(area->flags & AS_AREA_DEVICE));
-
 
228
 
227
    page_table_lock(AS, false);
229
    page_table_lock(AS, false);
228
   
230
   
229
    /*
231
    /*
230
     * To avoid race condition between two page faults
232
     * To avoid race condition between two page faults
231
     * on the same address, we need to make sure
233
     * on the same address, we need to make sure
Line 445... Line 447...
445
        spinlock_unlock(&as->lock);
447
        spinlock_unlock(&as->lock);
446
        interrupts_restore(ipl);
448
        interrupts_restore(ipl);
447
        return (__address) -1;
449
        return (__address) -1;
448
    }
450
    }
449
 
451
 
-
 
452
    if (area->flags & AS_AREA_DEVICE) {
-
 
453
        /*
-
 
454
         * Remapping of address space areas associated
-
 
455
         * with memory mapped devices is not supported.
-
 
456
         */
-
 
457
        spinlock_unlock(&area->lock);
-
 
458
        spinlock_unlock(&as->lock);
-
 
459
        interrupts_restore(ipl);
-
 
460
        return (__address) -1;
-
 
461
    }
-
 
462
 
450
    pages = SIZE2FRAMES((address - area->base) + size);
463
    pages = SIZE2FRAMES((address - area->base) + size);
451
    if (pages < area->pages) {
464
    if (pages < area->pages) {
452
        int i;
465
        int i;
453
 
466
 
454
        /*
467
        /*