*/
tPAddr MM_AllocPhysRange(int Num, int Bits)
{
- tPAddr addr;
+ tPAddr addr, ret;
int rangeID;
int nFree = 0, i;
// Mark pages as allocated
addr -= Num;
- for( i = 0; i < Num; i++ )
+ for( i = 0; i < Num; i++, addr++ )
{
gaMainBitmap[addr >> 6] |= 1 << (addr & 63);
rangeID = MM_int_GetRangeID(addr);
giPhysRangeFree[ rangeID ] --;
}
+ ret = addr; // Save the return address
// Update super bitmap
Num += addr & (64-1);
}
RELEASE(&glPhysicalPages);
- LEAVE('x', addr << 12);
- return addr << 12;
+ LEAVE('x', ret << 12);
+ return ret << 12;
}
/**