From: Matthew Wilcox <[email protected]>

We don't actually care about the contents of the PUD, just set the bits
to indicate presence and return.

Signed-off-by: Matthew Wilcox <[email protected]>
---
 mm/mincore.c | 13 +++++++++++++
 1 file changed, 13 insertions(+)

diff --git a/mm/mincore.c b/mm/mincore.c
index 2a565ed..8e6ce12 100644
--- a/mm/mincore.c
+++ b/mm/mincore.c
@@ -108,6 +108,18 @@ static int mincore_unmapped_range(unsigned long addr, 
unsigned long end,
        return 0;
 }
 
+static int mincore_pud_range(pud_t *pud, unsigned long addr, unsigned long end,
+                       struct mm_walk *walk)
+{
+       unsigned char *vec = walk->private;
+       int nr = (end - addr) >> PAGE_SHIFT;
+
+       memset(vec, 1, nr);
+       walk->private += nr;
+
+       return 0;
+}
+
 static int mincore_pte_range(pmd_t *pmd, unsigned long addr, unsigned long end,
                        struct mm_walk *walk)
 {
@@ -176,6 +188,7 @@ static long do_mincore(unsigned long addr, unsigned long 
pages, unsigned char *v
        unsigned long end;
        int err;
        struct mm_walk mincore_walk = {
+               .pud_entry = mincore_pud_range,
                .pmd_entry = mincore_pte_range,
                .pte_hole = mincore_unmapped_range,
                .hugetlb_entry = mincore_hugetlb,
-- 
2.6.2

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [email protected]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Reply via email to