Commit 1acc886c authored by bob picco's avatar bob picco Committed by Sasha Levin

sparc64: kern_addr_valid regression

[ Upstream commit adfae8a5 ]

I encountered this bug when using /proc/kcore to examine the kernel. Plus a
coworker inquired about debugging tools. We computed pa but did
not use it during the maximum physical address bits test. Instead we used
the identity mapped virtual address which will always fail this test.

I believe the defect came in here:
[bpicco@zareason linus.git]$ git describe --contains bb4e6e85
v3.18-rc1~87^2~4
.
Signed-off-by: default avatarBob Picco <bob.picco@oracle.com>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
Signed-off-by: default avatarSasha Levin <alexander.levin@verizon.com>
parent 5023f121
...@@ -1378,7 +1378,7 @@ bool kern_addr_valid(unsigned long addr) ...@@ -1378,7 +1378,7 @@ bool kern_addr_valid(unsigned long addr)
if ((long)addr < 0L) { if ((long)addr < 0L) {
unsigned long pa = __pa(addr); unsigned long pa = __pa(addr);
if ((addr >> max_phys_bits) != 0UL) if ((pa >> max_phys_bits) != 0UL)
return false; return false;
return pfn_valid(pa >> PAGE_SHIFT); return pfn_valid(pa >> PAGE_SHIFT);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment