Changes in kernel/generic/src/mm/frame.c [864b0dd:d060900] in mainline
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
kernel/generic/src/mm/frame.c
r864b0dd rd060900 481 481 482 482 frame_t *frame = &zone->frames[frame_idx]; 483 size_t size = 0;483 size_t size = 1 << frame->buddy_order; 484 484 485 485 ASSERT(frame->refcount); 486 486 487 487 if (!--frame->refcount) { 488 size = 1 << frame->buddy_order;489 buddy_system_free(zone->buddy_system, &frame->buddy_link);488 buddy_system_free(zone->buddy_system, &frame->buddy_link); 489 490 490 /* Update zone information. */ 491 491 zone->free_count += size; … … 1007 1007 * If not told otherwise, we must first reserve the memory. 1008 1008 */ 1009 if (!(flags & FRAME_NO_RESERVE)) 1010 reserve_force_alloc(size); 1011 1009 if (!(flags & FRAME_NO_RESERVE)) { 1010 if (flags & FRAME_ATOMIC) { 1011 if (!reserve_try_alloc(size)) 1012 return NULL; 1013 } else { 1014 reserve_force_alloc(size); 1015 } 1016 } 1017 1012 1018 loop: 1013 1019 irq_spinlock_lock(&zones.lock, true);
Note:
See TracChangeset
for help on using the changeset viewer.