x86: Ioremap: fix wrong physical address handling in PAT code
authorYasuaki Ishimatsu <isimatu.yasuaki@jp.fujitsu.com>
Thu, 22 Jul 2010 05:57:35 +0000 (14:57 +0900)
committerThomas Gleixner <tglx@linutronix.de>
Thu, 29 Jul 2010 13:26:11 +0000 (15:26 +0200)
The following two commits fixed a problem that x86 ioremap() doesn't handle
physical address higher than 32-bit properly in X86_32 PAE mode.

 ffa71f33a820d1ab3f2fc5723819ac60fb76080b (x86, ioremap: Fix incorrect
 physical address handling in PAE mode)

 35be1b716a475717611b2dc04185e9d80b9cb693 (x86, ioremap: Fix normal
 ram range check)

But these fixes are not enough, since pat_pagerange_is_ram() in PAT code
also has a same problem. This patch fixes it.

Signed-off-by: Yasuaki Ishimatsu <isimatu.yasuaki@jp.fujitsu.com>
Reviewed-by: Kenji Kaneshige <kaneshige.kenji@jp.fujitsu.com>
LKML-Reference: <4C47DDCF.80300@jp.fujitsu.com>
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
arch/x86/mm/pat.c

index acc15b23b74342df6188d0fd0e7b356e1530e8bb..03b48c80c651a918bd18f14889884d71c9ce254c 100644 (file)
@@ -158,7 +158,7 @@ static unsigned long pat_x_mtrr_type(u64 start, u64 end, unsigned long req_type)
        return req_type;
 }
 
-static int pat_pagerange_is_ram(unsigned long start, unsigned long end)
+static int pat_pagerange_is_ram(resource_size_t start, resource_size_t end)
 {
        int ram_page = 0, not_rampage = 0;
        unsigned long page_nr;