Ignore:
File:
1 edited

Legend:

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

    rd060900 r864b0dd  
    481481       
    482482        frame_t *frame = &zone->frames[frame_idx];
    483         size_t size = 1 << frame->buddy_order;
     483        size_t size = 0;
    484484       
    485485        ASSERT(frame->refcount);
    486486       
    487487        if (!--frame->refcount) {
    488                 buddy_system_free(zone->buddy_system, &frame->buddy_link);
    489                
     488                size = 1 << frame->buddy_order;
     489                buddy_system_free(zone->buddy_system, &frame->buddy_link);             
    490490                /* Update zone information. */
    491491                zone->free_count += size;
     
    10071007         * If not told otherwise, we must first reserve the memory.
    10081008         */
    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        
     1009        if (!(flags & FRAME_NO_RESERVE))
     1010                reserve_force_alloc(size);
     1011
    10181012loop:
    10191013        irq_spinlock_lock(&zones.lock, true);
Note: See TracChangeset for help on using the changeset viewer.