X-Git-Url: https://git.ucc.asn.au/?a=blobdiff_plain;f=Kernel%2Farch%2Farmv7%2Fmm_virt.c;fp=Kernel%2Farch%2Farmv7%2Fmm_virt.c;h=887b10b8923b83fbc886b0c23458b8225f2b7461;hb=30003ad470de879b53592b02a8f6f87d07077ece;hp=ea2c8461bf0c9448a5fc34da2b351d915a1a38e0;hpb=680c5d97a936963c62796dcae2d3a434a9a18ddf;p=tpg%2Facess2.git diff --git a/Kernel/arch/armv7/mm_virt.c b/Kernel/arch/armv7/mm_virt.c index ea2c8461..887b10b8 100644 --- a/Kernel/arch/armv7/mm_virt.c +++ b/Kernel/arch/armv7/mm_virt.c @@ -9,6 +9,8 @@ #include #include +#define TRACE_MAPS 0 + #define AP_KRW_ONLY 1 // Kernel page #define AP_KRO_ONLY 5 // Kernel RO page #define AP_RW_BOTH 3 // Standard RW @@ -390,7 +392,9 @@ void MM_SetFlags(tVAddr VAddr, Uint Flags, Uint Mask) int MM_Map(tVAddr VAddr, tPAddr PAddr) { tMM_PageInfo pi = {0}; -// Log("MM_Map %P=>%p", PAddr, VAddr); + #if TRACE_MAPS + Log("MM_Map %P=>%p", PAddr, VAddr); + #endif pi.PhysAddr = PAddr; pi.Size = 12; @@ -682,7 +686,7 @@ tVAddr MM_MapHWPages(tPAddr PAddr, Uint NPages) // Map the pages for( i = 0; i < NPages; i ++ ) - MM_Map(ret+i*PAGE_SIZE, PAddr+i*PAddr); + MM_Map(ret+i*PAGE_SIZE, PAddr+i*PAGE_SIZE); // and return LEAVE('p', ret); return ret; @@ -698,7 +702,10 @@ tVAddr MM_AllocDMA(int Pages, int MaxBits, tPAddr *PAddr) tVAddr ret; phys = MM_AllocPhysRange(Pages, MaxBits); - if(!phys) return 0; + if(!phys) { + Log_Warning("MMVirt", "No space left for a %i page block (MM_AllocDMA)", Pages); + return 0; + } ret = MM_MapHWPages(phys, Pages); *PAddr = phys;