Commit 9ae3ae0b authored by Alexandre Rusev's avatar Alexandre Rusev Committed by Russell King

[ARM] 4839/1: fixes kernel Oops in /dev/mem device driver for memory map with PHYS_OFF

"cat /dev/mem" may cause kernel Oops for boards with PHYS_OFFSET != 0
because character device is mapped to addresses starting from zero
and there is no protection against such situation.
Patch just add this.
Signed-off-by: default avatarAlexandre Rusev <arusev@ru.mvista.com>
Signed-off-by: default avatarRussell King <rmk+kernel@arm.linux.org.uk>
parent c710e39c
...@@ -120,6 +120,8 @@ arch_get_unmapped_area(struct file *filp, unsigned long addr, ...@@ -120,6 +120,8 @@ arch_get_unmapped_area(struct file *filp, unsigned long addr,
*/ */
int valid_phys_addr_range(unsigned long addr, size_t size) int valid_phys_addr_range(unsigned long addr, size_t size)
{ {
if (addr < PHYS_OFFSET)
return 0;
if (addr + size > __pa(high_memory)) if (addr + size > __pa(high_memory))
return 0; return 0;
......
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