From: Alexey Brodkin Date: Thu, 12 Feb 2015 18:10:11 +0000 (+0300) Subject: ARC: fix page address calculation if PAGE_OFFSET != LINUX_LINK_BASE X-Git-Tag: omap-for-v4.1/prcm-dts-mfd-syscon-fix~79^2 X-Git-Url: http://git.openpandora.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=06f34e1c28f3608b0ce5b310e41102d3fe7b65a1;p=pandora-kernel.git ARC: fix page address calculation if PAGE_OFFSET != LINUX_LINK_BASE We used to calculate page address differently in 2 cases: 1. In virt_to_page(x) we do --->8--- mem_map + (x - CONFIG_LINUX_LINK_BASE) >> PAGE_SHIFT --->8--- 2. In in pte_page(x) we do --->8--- mem_map + (pte_val(x) - PAGE_OFFSET) >> PAGE_SHIFT --->8--- That leads to problems in case PAGE_OFFSET != CONFIG_LINUX_LINK_BASE - different pages will be selected depending on where and how we calculate page address. In particular in the STAR 9000853582 when gdb attempted to read memory of another process it got improper page in get_user_pages() because this is exactly one of the places where we search for a page by pte_page(). The fix is trivial - we need to calculate page address similarly in both cases. Cc: Signed-off-by: Alexey Brodkin Signed-off-by: Vineet Gupta --- Reading git-diff-tree failed