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>
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();
}