mirror of
https://github.com/torvalds/linux.git
synced 2026-07-27 01:32:21 +02:00
drivers/virt: pkvm: Fix end calculation in mmio_guard_ioremap_hook()
Sashiko (locally) reports a logical issues in mmio_guard_ioremap_hook()
mmio_guard_ioremap_hook() attempts to handle unaligned addresses and
sizes. However, aligning the start address before adding the size, might
shift the end to the page before.
Fixes: 0f12694958 ("drivers/virt: pkvm: Intercept ioremap using pKVM MMIO_GUARD hypercall")
Signed-off-by: Mostafa Saleh <smostafa@google.com>
Reviewed-by: Catalin Marinas <catalin.marinas@arm.com>
Tested-by: Aneesh Kumar K.V (Arm) <aneesh.kumar@kernel.org>
Signed-off-by: Will Deacon <will@kernel.org>
This commit is contained in:
parent
26b483d524
commit
62c740f823
|
|
@ -82,8 +82,8 @@ static int mmio_guard_ioremap_hook(phys_addr_t phys, size_t size,
|
|||
if (protval != PROT_DEVICE_nGnRE && protval != PROT_DEVICE_nGnRnE)
|
||||
return 0;
|
||||
|
||||
end = PAGE_ALIGN(phys + size);
|
||||
phys = PAGE_ALIGN_DOWN(phys);
|
||||
end = phys + PAGE_ALIGN(size);
|
||||
|
||||
while (phys < end) {
|
||||
const int func_id = ARM_SMCCC_VENDOR_HYP_KVM_MMIO_GUARD_FUNC_ID;
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user