Ignore:
File:
1 edited

Legend:

Unmodified
Added
Removed
  • kernel/generic/src/mm/km.c

    rb0c2075 r5c7be3e  
    4949#include <macros.h>
    5050#include <bitops.h>
     51#include <proc/thread.h>
    5152
    5253static ra_arena_t *km_ni_arena;
     
    247248         */
    248249        uintptr_t page;
    249         uintptr_t frame =
    250             frame_alloc(1, FRAME_HIGHMEM | FRAME_ATOMIC | flags, 0);
     250        uintptr_t frame;
     251
     252        frame = frame_alloc(1, FRAME_HIGHMEM | FRAME_ATOMIC | flags, 0);
    251253        if (frame) {
    252254                page = km_map(frame, PAGE_SIZE,
    253255                    PAGE_READ | PAGE_WRITE | PAGE_CACHEABLE);
    254                
    255                 // FIXME
    256                 ASSERT(page);
     256                if (!page) {   
     257                        frame_free(frame, 1);
     258                        goto lowmem;
     259                }
    257260        } else {
     261lowmem:
    258262                frame = frame_alloc(1, FRAME_LOWMEM | flags, 0);
    259263                if (!frame)
Note: See TracChangeset for help on using the changeset viewer.