arm64: mm: Add double logical invert to pte accessors
authorSteve Capper <steve.capper@linaro.org>
Tue, 25 Feb 2014 11:38:53 +0000 (11:38 +0000)
committerMark Brown <broonie@linaro.org>
Fri, 9 May 2014 11:02:48 +0000 (12:02 +0100)
commite0834c5484ef79b4d631eb0ae9dd25d4055c445f
tree9c029e6c6de070da496f5b144d3633bd06b27f01
parent6d251ba203e4517823c4dea69a7941a77e7580c1
arm64: mm: Add double logical invert to pte accessors

Page table entries on ARM64 are 64 bits, and some pte functions such as
pte_dirty return a bitwise-and of a flag with the pte value. If the
flag to be tested resides in the upper 32 bits of the pte, then we run
into the danger of the result being dropped if downcast.

For example:
gather_stats(page, md, pte_dirty(*pte), 1);
where pte_dirty(*pte) is downcast to an int.

This patch adds a double logical invert to all the pte_ accessors to
ensure predictable downcasting.

Signed-off-by: Steve Capper <steve.capper@linaro.org>
Cc: <stable@vger.kernel.org>
Signed-off-by: Catalin Marinas <catalin.marinas@arm.com>
arch/arm64/include/asm/pgtable.h