diff options
author | Michael Kelley <[email protected]> | 2022-11-16 10:41:24 -0800 |
---|---|---|
committer | Borislav Petkov <[email protected]> | 2022-11-22 12:21:16 +0100 |
commit | 4dbd6a3e90e03130973688fd79e19425f720d999 (patch) | |
tree | 8b729bacbb98600b4113065a29c37feeaf49800e /lib/mpi/mpi-mod.c | |
parent | 50bcceb7724e471d9b591803889df45dcbb584bc (diff) |
x86/ioremap: Fix page aligned size calculation in __ioremap_caller()
Current code re-calculates the size after aligning the starting and
ending physical addresses on a page boundary. But the re-calculation
also embeds the masking of high order bits that exceed the size of
the physical address space (via PHYSICAL_PAGE_MASK). If the masking
removes any high order bits, the size calculation results in a huge
value that is likely to immediately fail.
Fix this by re-calculating the page-aligned size first. Then mask any
high order bits using PHYSICAL_PAGE_MASK.
Fixes: ffa71f33a820 ("x86, ioremap: Fix incorrect physical address handling in PAE mode")
Signed-off-by: Michael Kelley <[email protected]>
Signed-off-by: Borislav Petkov <[email protected]>
Acked-by: Dave Hansen <[email protected]>
Cc: <[email protected]>
Link: https://lore.kernel.org/r/[email protected]
Diffstat (limited to 'lib/mpi/mpi-mod.c')
0 files changed, 0 insertions, 0 deletions