\r
if (vma)//&& (vma->vm_flags & VM_PFNMAP) )\r
{\r
+ #if 0\r
do\r
{\r
pte_t * pte;\r
pte_unmap_unlock(pte, ptl); \r
}\r
while (0);\r
+ \r
+ #else\r
+ \r
+ do\r
+ {\r
+ pte_t * pte;\r
+ spinlock_t * ptl;\r
+ unsigned long pfn; \r
+ pgd_t * pgd;\r
+ pud_t * pud;\r
+ pmd_t * pmd;\r
+ \r
+ pgd = pgd_offset(current->mm, (Memory + i) << PAGE_SHIFT); \r
+ pud = pud_offset(pgd, (Memory + i) << PAGE_SHIFT);\r
+ pmd = pmd_offset(pud, (Memory + i) << PAGE_SHIFT);\r
+ pte = pte_offset_map_lock(current->mm, pmd, (Memory + i) << PAGE_SHIFT, &ptl);\r
+ \r
+ pfn = pte_pfn(*pte);\r
+ Address = ((pfn << PAGE_SHIFT) | (((unsigned long)((Memory + i) << PAGE_SHIFT)) & ~PAGE_MASK)); \r
+ pte_unmap_unlock(pte, ptl); \r
+ }\r
+ while (0);\r
+ #endif\r
\r
pageTable[i] = Address;\r
}\r