arm64: Align less than PAGE_SIZE pgds naturally
authorCatalin Marinas <catalin.marinas@arm.com>
Fri, 10 Oct 2014 14:37:28 +0000 (15:37 +0100)
committerCatalin Marinas <catalin.marinas@arm.com>
Mon, 20 Oct 2014 16:47:02 +0000 (17:47 +0100)
commit2a0b5c0d19298cad54573682321b5fe015fa5a0d
treed1b64ac1f1ce289bb1184fa4563930a2be9519e8
parent04f905a9569ca2b6964a35563f135fabbb2470bc
arm64: Align less than PAGE_SIZE pgds naturally

When the pgd size is smaller than PAGE_SIZE, pgd_alloc() uses kzalloc()
to save space. However, this is not always naturally aligned as required
by the architecture. This patch creates a kmem_cache for pgd allocations
with the correct alignment.

The current kernel configurations with 4K pages + 39-bit VA and 64K
pages + 42-bit VA use a full page for the pgd and are not affected. The
patch is required for 48-bit VA with 64K pages where the pgd is 512
bytes.

Reported-by: Christoffer Dall <christoffer.dall@linaro.org>
Reviewed-by: Christoffer Dall <christoffer.dall@linaro.org>
Signed-off-by: Catalin Marinas <catalin.marinas@arm.com>
arch/arm64/mm/pgd.c