>From 67c99f8b59a3fa8a098967237ec1687b91632f63 Mon Sep 17 00:00:00 2001 From: HATAYAMA Daisuke <d.hatayama@xxxxxxxxxxxxxx> Date: Thu, 28 Apr 2011 07:59:51 +0900 Subject: [PATCH 5/5] ia64: Add _PAGE_PROTNONE check The variable page_present in ia64_translate_pte() has type int with 4-byte length and _PAGE_PROTNONE bit on ia64 is 63. (!!) operation is added in order to deal with overflow. --- ia64.c | 6 +++--- 1 files changed, 3 insertions(+), 3 deletions(-) diff --git a/ia64.c b/ia64.c index 9f8c06d..5b1f99e 100755 --- a/ia64.c +++ b/ia64.c @@ -893,7 +893,7 @@ ia64_vtop_4l(ulong vaddr, physaddr_t *paddr, ulong *pgd, int verbose, int usr) if (verbose) fprintf(fp, " PTE: %lx => %lx\n", (ulong)page_table, pte); - if (!(pte & (_PAGE_P))) { + if (!(pte & (_PAGE_P | _PAGE_PROTNONE))) { if (usr) *paddr = pte; if (pte && verbose) { @@ -971,7 +971,7 @@ ia64_vtop(ulong vaddr, physaddr_t *paddr, ulong *pgd, int verbose, int usr) if (verbose) fprintf(fp, " PTE: %lx => %lx\n", (ulong)page_table, pte); - if (!(pte & (_PAGE_P))) { + if (!(pte & (_PAGE_P | _PAGE_PROTNONE))) { if (usr) *paddr = pte; if (pte && verbose) { @@ -1237,7 +1237,7 @@ ia64_translate_pte(ulong pte, void *physaddr, ulonglong unused) ulong paddr; paddr = pte & _PFN_MASK; - page_present = pte & _PAGE_P; + page_present = !!(pte & (_PAGE_P | _PAGE_PROTNONE)); if (physaddr) { *((ulong *)physaddr) = paddr; -- 1.7.4.4
-- Crash-utility mailing list Crash-utility@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/crash-utility