• Steve Capper's avatar
    arm64: mm: Add double logical invert to pte accessors · 3eb33912
    Steve Capper authored
    commit 84fe6826 upstream.
    
    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: default avatarSteve Capper <steve.capper@linaro.org>
    [steve.capper@linaro.org: rebased patch to leave pte_write alone to
    allow for merge with 3.13 stable]
    Signed-off-by: default avatarCatalin Marinas <catalin.marinas@arm.com>
    Signed-off-by: default avatarJiri Slaby <jslaby@suse.cz>
    3eb33912
pgtable.h 13.1 KB