x86: ioremap: fix wrong physical address handling in PAT code
PATCH 1/1 x86: ioremap: fix wrong physical address handling in PAT code
From: Yasuaki Ishimatsu <[email protected]>
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.
---
It is for -tip tree.
arch/x86/mm/pat.c +1 -1
@@ -158,7 +158,7 @@ static unsigned long pat_x_mtrr_type(u64return 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;
Good catch!
Quoted 39 lines · Yasuaki Ishimatsu
From: Yasuaki Ishimatsu<[email protected]>
The following two commits fixed a problem that x86
ioremap()doesn't handle physical address higher than 32-bit properly inX86_32PAE 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<[email protected]>---
It is for -tip tree.
Index:
linux-2.6-x86/arch/x86/mm/pat.c
===================================================================arch/x86/mm/pat.c +1
-2@@ -158,7 +158,7 @@ static unsigned long pat_x_mtrr_type(u64return 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; --To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to [email protected]
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
Hi,
Does anybody see the following patch? It's obviously a bug. Please apply it.
Thanks,
Yasuaki Ishimatsu
Quoted 32 lines
From: Yasuaki Ishimatsu <[email protected]>
The following two commits fixed a problem that x86
ioremap()doesn't handle physical address higher than 32-bit properly inX86_32PAE 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 <[email protected]>---
It is for -tip tree.
Index:
linux-2.6-x86/arch/x86/mm/pat.c
===================================================================arch/x86/mm/pat.c +1
-1@@ -158,7 +158,7 @@ static unsigned long pat_x_mtrr_type(u64return 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;
[tip:x86/mm] x86: Ioremap: fix wrong physical address handling in PAT code
In reply to Yasuaki IshimatsuCommit-ID: 3709c857350976408953831f0cf89d19951394a1 Gitweb: http://git.kernel.org/tip/3709c857350976408953831f0cf89d19951394a1 Author: Yasuaki Ishimatsu <[email protected]> AuthorDate: Thu, 22 Jul 2010 14:57:35 +0900 Committer: Thomas Gleixner <[email protected]> CommitDate: Thu, 29 Jul 2010 15:26:11 +0200
x86: Ioremap: fix wrong physical address handling in PAT code
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.
LKML-Reference: <[email protected]>
--- arch/x86/mm/pat.c | 2 +- 1 files changed, 1 insertions(+), 1 deletions(-)
arch/x86/mm/pat.c +1 -1
@@ -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;