From 5f6d334adbb6e9b1cf269441551227a2d5c4c321 Mon Sep 17 00:00:00 2001 From: t_jeang Date: Tue, 6 Jan 2009 12:06:06 +0000 Subject: [PATCH] imported patch maps2-patches/99-handle-xen-foreign-mappings.patch --- fs/proc/task_mmu.c | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/fs/proc/task_mmu.c b/fs/proc/task_mmu.c index 068348b1..7109cd99 100644 --- a/fs/proc/task_mmu.c +++ b/fs/proc/task_mmu.c @@ -584,6 +584,7 @@ static int pagemap_pte_range(pmd_t *pmd, unsigned long addr, unsigned long end, struct pagemapread *pm = private; pte_t *pte; int err; + unsigned long pfn; pte = pte_offset_map(pmd, addr); @@ -597,10 +598,13 @@ static int pagemap_pte_range(pmd_t *pmd, unsigned long addr, unsigned long end, for (; addr != end; pte++, addr += PAGE_SIZE) { if (addr < pm->next) continue; - if (!pte_present(*pte)) - err = add_to_pagemap(addr, -1, pm); - else - err = add_to_pagemap(addr, pte_pfn(*pte), pm); + pfn = -1; + if (pte_present(*pte)) { + pfn = pte_pfn(*pte); + if (!pfn_valid(pfn)) + pfn = -1; + } + err = add_to_pagemap(addr, pfn, pm); if (err) return err; } -- 2.39.5