mm: debugfs: move rounddown_pow_of_two() out from do_fault path
authorAndrey Ryabinin <[email protected]>
Wed, 30 Jul 2014 23:08:35 +0000 (16:08 -0700)
committerLinus Torvalds <[email protected]>
Thu, 31 Jul 2014 00:16:13 +0000 (17:16 -0700)
commitb4903d6e8408e6137ee4666ee67ec566b74a0f05
tree2db6b545dd1e56bac8602974fe74ca0cc773d67a
parent2bcf2e92c3918ce62ab4e934256e47e9a16d19c3
mm: debugfs: move rounddown_pow_of_two() out from do_fault path

do_fault_around() expects fault_around_bytes rounded down to nearest page
order.  Instead of calling rounddown_pow_of_two every time in
fault_around_pages()/fault_around_mask() we could do round down when user
changes fault_around_bytes via debugfs interface.

This also fixes bug when user set fault_around_bytes to 0.  Result of
rounddown_pow_of_two(0) is not defined, therefore fault_around_bytes == 0
doesn't work without this patch.

Let's set fault_around_bytes to PAGE_SIZE if user sets to something less
than PAGE_SIZE

[[email protected]: tweak code layout]
Fixes: a9b0f861("mm: nominate faultaround area in bytes rather than page order")
Signed-off-by: Andrey Ryabinin <[email protected]>
Reported-by: Sasha Levin <[email protected]>
Acked-by: Kirill A. Shutemov <[email protected]>
Cc: <[email protected]> [3.15.x]
Signed-off-by: Andrew Morton <[email protected]>
Signed-off-by: Linus Torvalds <[email protected]>
mm/memory.c