Changes in kernel/generic/src/mm/km.c [5c7be3e:c387838] in mainline
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
kernel/generic/src/mm/km.c
r5c7be3e rc387838 49 49 #include <macros.h> 50 50 #include <bitops.h> 51 #include <proc/thread.h>52 51 53 52 static ra_arena_t *km_ni_arena; … … 240 239 uintptr_t km_temporary_page_get(uintptr_t *framep, frame_flags_t flags) 241 240 { 241 uintptr_t frame; 242 uintptr_t page; 243 242 244 ASSERT(THREAD); 243 245 ASSERT(framep); 244 246 ASSERT(!(flags & ~(FRAME_NO_RESERVE | FRAME_ATOMIC))); 245 247 246 248 /* 247 249 * Allocate a frame, preferably from high memory. 248 250 */ 249 uintptr_t page; 250 uintptr_t frame; 251 252 frame = frame_alloc(1, FRAME_HIGHMEM | FRAME_ATOMIC | flags, 0); 251 frame = (uintptr_t) frame_alloc(ONE_FRAME, 252 FRAME_HIGHMEM | FRAME_ATOMIC | flags); 253 253 if (frame) { 254 254 page = km_map(frame, PAGE_SIZE, 255 255 PAGE_READ | PAGE_WRITE | PAGE_CACHEABLE); 256 if (!page) { 257 frame_free(frame, 1); 258 goto lowmem; 259 } 256 ASSERT(page); // FIXME 260 257 } else { 261 lowmem: 262 frame = frame_alloc(1, FRAME_LOWMEM | flags, 0);258 frame = (uintptr_t) frame_alloc(ONE_FRAME, 259 FRAME_LOWMEM | flags); 263 260 if (!frame) 264 261 return (uintptr_t) NULL; 265 266 262 page = PA2KA(frame); 267 263 } 268 264 269 265 *framep = frame; 270 return page; 266 return page; 271 267 } 272 268
Note:
See TracChangeset
for help on using the changeset viewer.