MaxBits = PHYS_BITS;
// Sanity Check
- if(MaxBits < 12 || !PhysAddr) {
+ if(MaxBits < 12) {
LEAVE('i', 0);
return 0;
}
if(Pages == 1 && MaxBits >= PHYS_BITS)
{
phys = MM_AllocPhys();
+ if( PhysAddr )
+ *PhysAddr = phys;
if( !phys ) {
- *PhysAddr = 0;
LEAVE_RET('i', 0);
}
- *PhysAddr = phys;
ret = MM_MapHWPages(phys, 1);
if(ret == 0) {
MM_DerefPhys(phys);
return 0;
}
- *PhysAddr = phys;
+ if( PhysAddr )
+ *PhysAddr = phys;
LEAVE('x', ret);
return ret;
}
{
MM_DerefPhys( gaPageTable[ i + j ] & ~0xFFF );
gaPageTable[ i + j ] = 0;
+ INVLPG( (tVAddr)(i+j) << 12 );
}
Mutex_Release( &glTempMappings );