summaryrefslogtreecommitdiffstats
path: root/arch/arm64/kernel/head.S
diff options
context:
space:
mode:
authorMark Rutland2016-01-25 12:44:56 +0100
committerCatalin Marinas2016-02-16 16:10:44 +0100
commit21ab99c289d350f4ae454bc069870009db6df20e (patch)
treeeb5c391ba59238d35b3701b54e854b145b28f05a /arch/arm64/kernel/head.S
parentasm-generic: Fix local variable shadow in __set_fixmap_offset (diff)
downloadkernel-qcow2-linux-21ab99c289d350f4ae454bc069870009db6df20e.tar.gz
kernel-qcow2-linux-21ab99c289d350f4ae454bc069870009db6df20e.tar.xz
kernel-qcow2-linux-21ab99c289d350f4ae454bc069870009db6df20e.zip
arm64: mm: specialise pagetable allocators
We pass a size parameter to early_alloc and late_alloc, but these are only ever used to allocate single pages. In late_alloc we always allocate a single page. Both allocators provide us with zeroed pages (such that all entries are invalid), but we have no barriers between allocating a page and adding that page to existing (live) tables. A concurrent page table walk may see stale data, leading to a number of issues. This patch specialises the two allocators for page tables. The size parameter is removed and the necessary dsb(ishst) is folded into each. To make it clear that the functions are intended for use for page table allocation, they are renamed to {early,late}_pgtable_alloc, with the related function pointed renamed to pgtable_alloc. As the dsb(ishst) is now in the allocator, the existing barrier for the zero page is redundant and thus is removed. The previously missing include of barrier.h is added. Signed-off-by: Mark Rutland <mark.rutland@arm.com> Reviewed-by: Catalin Marinas <catalin.marinas@arm.com> Tested-by: Ard Biesheuvel <ard.biesheuvel@linaro.org> Reviewed-by: Ard Biesheuvel <ard.biesheuvel@linaro.org> Tested-by: Jeremy Linton <jeremy.linton@arm.com> Cc: Laura Abbott <labbott@fedoraproject.org> Cc: Will Deacon <will.deacon@arm.com> Signed-off-by: Catalin Marinas <catalin.marinas@arm.com>
Diffstat (limited to 'arch/arm64/kernel/head.S')
0 files changed, 0 insertions, 0 deletions