powerpc: Fail remap_4k_pfn() if PFN doesn't fit inside PTE
authorMadhusudanan Kandasamy <kmadhu@linux.vnet.ibm.com>
Thu, 10 Jul 2014 15:15:13 +0000 (20:45 +0530)
committerBenjamin Herrenschmidt <benh@kernel.crashing.org>
Tue, 5 Aug 2014 06:34:06 +0000 (16:34 +1000)
commiteeb03a6eaa02e9171f91e385c52a69b159fc6117
tree8325d4ab23b055571595fb2b1434d7378201dfca
parentdb97efffb80652f7f879bc1d4837cbc84dc32557
powerpc: Fail remap_4k_pfn() if PFN doesn't fit inside PTE

remap_4k_pfn() silently truncates upper bits of input 4K PFN
if it cannot be contained in PTE. This leads invalid memory mapping and could
result in a system crash when the memory is accessed. This patch fails
remap_4k_pfn() and returns -EINVAL if the input 4K PFN cannot be contained in
PTE.

V3 : Added parentheses to protect 'pfn' and entire macro as suggested by Brian.
V2 : Rewritten to avoid helper function as suggested by Stephen Rothwell.

Signed-off-by: Madhusudanan Kandasamy <kmadhu@linux.vnet.ibm.com>
Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
arch/powerpc/include/asm/pte-hash64-64k.h