From 2813fc9af1b7d1da12691ceb071feac9b76f8ed4 Mon Sep 17 00:00:00 2001 From: "Huang, Ying" Date: Wed, 30 Jan 2008 13:34:04 +0100 Subject: [PATCH] --- yaml --- r: 80503 b: refs/heads/master c: 1c17f4d615f34a4ecfcf9132d643126b226f5e79 h: refs/heads/master i: 80501: 37d7c313a9751712cf08d5d9726bb861dfe15e97 80499: 0f38bd9206820fd0b4a3969561fae6a5c674408a 80495: 3ff01ccadad051b5056072bd74ed594fc1ac38e9 v: v3 --- [refs] | 2 +- trunk/arch/x86/mm/ioremap_64.c | 7 +++++++ 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/[refs] b/[refs] index 77e80da1f4e8..e3469214ea2f 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: d2e626f45cc450c00f5f98a89b8b4c4ac3c9bf5f +refs/heads/master: 1c17f4d615f34a4ecfcf9132d643126b226f5e79 diff --git a/trunk/arch/x86/mm/ioremap_64.c b/trunk/arch/x86/mm/ioremap_64.c index 2815ab60009b..0a05f024dc22 100644 --- a/trunk/arch/x86/mm/ioremap_64.c +++ b/trunk/arch/x86/mm/ioremap_64.c @@ -41,7 +41,14 @@ ioremap_change_attr(unsigned long phys_addr, unsigned long size, if (phys_addr + size - 1 < (end_pfn_map << PAGE_SHIFT)) { unsigned long npages = (size + PAGE_SIZE - 1) >> PAGE_SHIFT; unsigned long vaddr = (unsigned long) __va(phys_addr); + int level; + /* + * If there is no identity map for this address, + * change_page_attr_addr is unnecessary + */ + if (!lookup_address(vaddr, &level)) + return err; /* * Must use a address here and not struct page because the phys addr * can be a in hole between nodes and not have an memmap entry.