310,6 → 310,7 |
index = (frame_index(zone, frame)) - (1 << frame->buddy_order); |
} |
|
|
if (frame_index_valid(zone, index)) { |
if (zone->frames[index].buddy_order == frame->buddy_order && |
zone->frames[index].refcount == 0) { |
468,11 → 469,11 |
|
if (!--frame->refcount) { |
buddy_system_free(zone->buddy_system, &frame->buddy_link); |
|
/* Update zone information. */ |
zone->free_count += (1 << order); |
zone->busy_count -= (1 << order); |
} |
|
/* Update zone information. */ |
zone->free_count += (1 << order); |
zone->busy_count -= (1 << order); |
} |
|
/** Return frame from zone */ |
600,6 → 601,7 |
} |
} |
|
|
/** Reduce allocated block to count of order 0 frames |
* |
* The allocated block need 2^order frames of space. Reduce all frames |
706,6 → 708,7 |
interrupts_restore(ipl); |
} |
|
|
/** |
* Merge all zones into one big zone |
* |
769,6 → 772,7 |
} |
} |
|
|
/** Compute configuration data size for zone */ |
__address zone_conf_size(count_t count) |
{ |
780,6 → 784,7 |
return size; |
} |
|
|
/** Create and add zone to system |
* |
* @param confframe Where configuration frame is supposed to be. |