void * mem;
unsigned long adr, page;
+#if LINUX_VERSION_CODE < 0x020300
mem=vmalloc(size);
+#else
+ mem=vmalloc_32(size);
+#endif
if (mem)
{
memset(mem, 0, size); /* Clear the ram out, no junk to the user */
mem_map_reserve(MAP_NR(phys_to_virt(page)));
#else
page = kvirt_to_pa(adr);
- mem_map_reserve(MAP_NR(__va(page)));
+ mem_map_reserve(virt_to_page(__va(page)));
#endif
adr+=PAGE_SIZE;
size-=PAGE_SIZE;
mem_map_unreserve(MAP_NR(phys_to_virt(page)));
#else
page = kvirt_to_pa(adr);
- mem_map_unreserve(MAP_NR(__va(page)));
+ mem_map_unreserve(virt_to_page(__va(page)));
#endif
adr+=PAGE_SIZE;
size-=PAGE_SIZE;
pmd_t *pmd;
pte_t *ptep, pte;
-
if(!pgd_none(*pgd)) {
pmd = pmd_offset(pgd, adr);
if (!pmd_none(*pmd)) {
ptep = pte_offset(pmd, adr);
pte = *ptep;
- if(pte_present(pte))
- ret = (page_address(pte_page(pte))|(adr&(PAGE_SIZE-1)));
+ if(pte_present(pte)){
+ ret = (unsigned long) page_address(pte_page(pte));
+ ret |= (adr&(PAGE_SIZE-1));
+ }
}
}
return ret;