[ARM] remove bogus #ifdef CONFIG_HIGHMEM in show_pte()

Previous thread: [ARM] prevent the vmalloc cmdline argument from eating all memory by Linux Kernel Mailing List on Tuesday, December 30, 2008 - 7:13 pm. (1 message)

Next thread: [ARM] unconditionally define __virt_to_phys and __phys_to_virt by Linux Kernel Mailing List on Tuesday, December 30, 2008 - 7:13 pm. (1 message)
From: Linux Kernel Mailing List
Date: Tuesday, December 30, 2008 - 7:13 pm

Gitweb:     http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=252d4c...
Commit:     252d4c276dc0895834af48743579cf19d1fa150b
Parent:     9210807cb5a3f19a0e954dd401e3a2c3626d1b48
Author:     Nicolas Pitre <nico@cam.org>
AuthorDate: Thu Sep 11 11:52:02 2008 -0400
Committer:  Russell King <rmk+kernel@arm.linux.org.uk>
CommitDate: Fri Nov 28 15:36:47 2008 +0000

    [ARM] remove bogus #ifdef CONFIG_HIGHMEM in show_pte()
    
    The restriction on !CONFIG_HIGHMEM is unneeded since page tables are
    currently never allocated with highmem pages, and actually disable PTE
    dump whenever highmem is configured.  Let's have a dynamic test to better
    describe the current limitation instead.
    
    Signed-off-by: Nicolas Pitre <nico@marvell.com>
    Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
---
 arch/arm/mm/fault.c |    6 ++++--
 1 files changed, 4 insertions(+), 2 deletions(-)

diff --git a/arch/arm/mm/fault.c b/arch/arm/mm/fault.c
index 2df8d9f..ffd8b22 100644
--- a/arch/arm/mm/fault.c
+++ b/arch/arm/mm/fault.c
@@ -14,6 +14,7 @@
 #include <linux/init.h>
 #include <linux/kprobes.h>
 #include <linux/uaccess.h>
+#include <linux/page-flags.h>
 
 #include <asm/system.h>
 #include <asm/pgtable.h>
@@ -83,13 +84,14 @@ void show_pte(struct mm_struct *mm, unsigned long addr)
 			break;
 		}
 
-#ifndef CONFIG_HIGHMEM
 		/* We must not map this if we have highmem enabled */
+		if (PageHighMem(pfn_to_page(pmd_val(*pmd) >> PAGE_SHIFT)))
+			break;
+
 		pte = pte_offset_map(pmd, addr);
 		printk(", *pte=%08lx", pte_val(*pte));
 		printk(", *ppte=%08lx", pte_val(pte[-PTRS_PER_PTE]));
 		pte_unmap(pte);
-#endif
 	} while(0);
 
 	printk("\n");
--

Previous thread: [ARM] prevent the vmalloc cmdline argument from eating all memory by Linux Kernel Mailing List on Tuesday, December 30, 2008 - 7:13 pm. (1 message)

Next thread: [ARM] unconditionally define __virt_to_phys and __phys_to_virt by Linux Kernel Mailing List on Tuesday, December 30, 2008 - 7:13 pm. (1 message)