Modules/UHCI - Fixed edge case NULL dereference
[tpg/acess2.git] / Kernel / arch / armv7 / mm_virt.c
index 7ab7f61..460b334 100644 (file)
@@ -166,6 +166,7 @@ int MM_int_SetPageInfo(tVAddr VAddr, tMM_PageInfo *pi)
                                *desc = 0;
                                TLBIMVA( VAddr );
                                DCCMVAC( (tVAddr) desc );
+                               #warning "HACK: TLBIALL"
                                TLBIALL();
                                LEAVE('i', 0);
                                return 0;
@@ -178,6 +179,7 @@ int MM_int_SetPageInfo(tVAddr VAddr, tMM_PageInfo *pi)
                        *desc |= (pi->AP & 3) << 4;     // AP
                        *desc |= ((pi->AP >> 2) & 1) << 9;      // APX
                        TLBIMVA( VAddr );       
+                       #warning "HACK: TLBIALL"
                        TLBIALL();
                        DCCMVAC( (tVAddr) desc );
                        LEAVE('i', 0);
@@ -935,16 +937,18 @@ void MM_int_DumpTableEnt(tVAddr Start, size_t Len, tMM_PageInfo *Info)
 {
        if( giMM_ZeroPage && Info->PhysAddr == giMM_ZeroPage )
        {
-               Debug("%p => %8s - 0x%7x %i %x",
+               Debug("%p => %8s - 0x%7x %i %x %s",
                        Start, "ZERO", Len,
-                       Info->Domain, Info->AP
+                       Info->Domain, Info->AP,
+                       Info->bGlobal ? "G" : "nG"
                        );
        }
        else
        {
-               Debug("%p => %8x - 0x%7x %i %x",
+               Debug("%p => %8x - 0x%7x %i %x %s",
                        Start, Info->PhysAddr-Len, Len,
-                       Info->Domain, Info->AP
+                       Info->Domain, Info->AP,
+                       Info->bGlobal ? "G" : "nG"
                        );
        }
 }
@@ -955,9 +959,7 @@ void MM_DumpTables(tVAddr Start, tVAddr End)
        tMM_PageInfo    pi, pi_old;
         int    i = 0, inRange=0;
        
-       pi_old.Size = 0;
-       pi_old.AP = 0;
-       pi_old.PhysAddr = 0;
+       memset(&pi_old, 0, sizeof(pi_old));
 
        Debug("Page Table Dump (%p to %p):", Start, End);
        range_start = Start;
@@ -970,6 +972,7 @@ void MM_DumpTables(tVAddr Start, tVAddr End)
                 || pi.Size != pi_old.Size
                 || pi.Domain != pi_old.Domain
                 || pi.AP != pi_old.AP
+                || pi.bGlobal != pi_old.bGlobal
                 || pi_old.PhysAddr != pi.PhysAddr )
                {
                        if(inRange) {

UCC git Repository :: git.ucc.asn.au