From: Huang Ying <ying.hu...@intel.com> The optimized clear_huge_page() isn't easy to read and understand. This is suggested by Michael Hocko to improve it.
Suggested-by: Michal Hocko <mho...@suse.com> Signed-off-by: "Huang, Ying" <ying.hu...@intel.com> --- mm/memory.c | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/mm/memory.c b/mm/memory.c index 20ac58c128e9..694ddbd3a020 100644 --- a/mm/memory.c +++ b/mm/memory.c @@ -4507,12 +4507,15 @@ void clear_huge_page(struct page *page, * towards the sub-page to access */ for (i = 0; i < l; i++) { + int left_idx = base + i; + int right_idx = base + 2 * l - 1 - i; + cond_resched(); - clear_user_highpage(page + base + i, - addr + (base + i) * PAGE_SIZE); + clear_user_highpage(page + left_idx, + addr + left_idx * PAGE_SIZE); cond_resched(); - clear_user_highpage(page + base + 2 * l - 1 - i, - addr + (base + 2 * l - 1 - i) * PAGE_SIZE); + clear_user_highpage(page + right_idx, + addr + right_idx * PAGE_SIZE); } } -- 2.13.2