in cmem.c :
static unsigned long get_phys(unsigned long virtp)
{
pgd_t *pgd;
pmd_t *pmd;
pte_t *pte;
struct mm_struct *mm = current->mm;
pgd = pgd_offset(mm, virtp);
if (!(pgd_none(*pgd) || pgd_bad(*pgd))) {
pmd = pmd_offset(pgd, virtp);
if (!(pmd_none(*pmd) || pmd_bad(*pmd))) {
pte = pte_offset_kernel(pmd, virtp);
if (pte_present(*pte)) {
return __pa(page_address(pte_page(*pte)) +
(virtp & ~PAGE_MASK));
}
}
}
return 0;
}
get_phys() is different from __pa() ? or they are all correct but used in
different condittion ?
_______________________________________________
Davinci-linux-open-source mailing list
[email protected]
http://linux.davincidsp.com/mailman/listinfo/davinci-linux-open-source