mm: fix range mistake for virt_check [1/1]
authorTao Zeng <tao.zeng@amlogic.com>
Wed, 2 Jan 2019 06:47:13 +0000 (14:47 +0800)
committerTao Zeng <tao.zeng@amlogic.com>
Wed, 2 Jan 2019 06:47:13 +0000 (14:47 +0800)
PD#SWPL-3793

Problem:
Address 0xC0000000 is in lowmem, which should not be warned by

virt_check:d input of virt:c0000000
                           ~~~~~~~~
CPU: 1 PID: 5141 Comm: Binder:3297_5 Tainted: G           O    4.9.113 #1
Hardware name: Generic DT based system
[<c030e760>] (show_stack+0x20/0x24)
[<c06ee8a8>] (dump_stack+0x90/0xac)
[<c031c7b4>] (virt_check+0x64/0x68)
[<c049c45c>] (__check_object_size+0x184/0x1f8)
[<c07058c0>] (copy_page_to_iter+0x288/0x5b8)
[<c04425dc>] (generic_file_read_iter+0x390/0xa48)
[<c049f238>] (__vfs_read+0xec/0x13c)
[<c04a00e0>] (vfs_read+0x9c/0x164)
[<c05ce7e8>] (sdcardfs_read+0x28/0x50)
[<c049f194>] (__vfs_read+0x48/0x13c)
[<c04a00e0>] (vfs_read+0x9c/0x164)
[<c04a13ac>] (SyS_read+0x5c/0xbc)
[<c0308980>] (ret_fast_syscall+0x0/0x48)

Solution:
Not warning for 0xC0000000 if virt address is equal to it

Verify:
R311

Change-Id: I9a3f8efe89564f31f9a49ab4448323c93ddc761d
Signed-off-by: Tao Zeng <tao.zeng@amlogic.com>
arch/arm/mm/mmu.c

index 7099113..4d3da37 100644 (file)
@@ -1668,7 +1668,7 @@ EXPORT_SYMBOL(phys_check);
 
 unsigned long notrace virt_check(unsigned long x)
 {
-       if (scheduler_running && (x >= VMALLOC_START || x <= PAGE_OFFSET)) {
+       if (scheduler_running && (x >= VMALLOC_START || x < PAGE_OFFSET)) {
                pr_err("bad input of virt:%lx\n", x);
                dump_stack();
        }