arm64: mm: don't assume struct page is always 64 bytes
Commit 8c96400d simplified the page-to-virt and virt-to-page conversions, based on the assumption that struct page is always 64 bytes in size, in which case we can use a single signed shift to perform the conversion (provided that the vmemmap array is placed appropriately in the kernel VA space) Unfortunately, this assumption turns out not to hold, and so we need to revert part of this commit, and go back to an affine transformation. Given that all the quantities involved are compile time constants, this should not make any practical difference. Fixes: 8c96400d ("arm64: mm: make vmemmap region a projection of the linear region") Reported-by:Geert Uytterhoeven <geert@linux-m68k.org> Signed-off-by:
Ard Biesheuvel <ardb@kernel.org> Link: https://lore.kernel.org/r/20201110180511.29083-1-ardb@kernel.orgTested-by:
Geert Uytterhoeven <geert+renesas@glider.be> Signed-off-by:
Catalin Marinas <catalin.marinas@arm.com>
Showing
Please register or sign in to comment