2010/10/10 Andi Kleen <andi@xxxxxxxxxxxxxx>: > Marco Stornelli <marco.stornelli@xxxxxxxxx> writes: >> + >> + do { >> + pgd = pgd_offset(&init_mm, address); >> + if (pgd_none(*pgd) || unlikely(pgd_bad(*pgd))) >> + goto out; >> + >> + pud = pud_offset(pgd, address); >> + if (pud_none(*pud) || unlikely(pud_bad(*pud))) >> + goto out; >> + >> + pmd = pmd_offset(pud, address); >> + if (pmd_none(*pmd) || unlikely(pmd_bad(*pmd))) >> + goto out; >> + >> + ptep = pte_offset_kernel(pmd, addr); >> + pte = *ptep; >> + if (pte_present(pte)) { > > This won't work at all on x86 because you don't handle large > pages. On x86 works because I tested. Maybe there's a particular configuration with large pages. Sincerly I'm only an "user", so if you/Linus or others want to change it or rewrite it, for me it's ok. The pte manipulation are a bit out of scope for a fs, so I let the things to the mm experts. -- To unsubscribe, send a message with 'unsubscribe linux-mm' in the body to majordomo@xxxxxxxxxx For more info on Linux MM, see: http://www.linux-mm.org/ . Don't email: <a href