[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [PATCH for 4.20? v1 0/3] Fixes for vmap_to_mfn() and pt_mapping_level
Introduce pt_walk(), which does software page table walking to resolve the following issues: 1. vmap_to_mfn() uses virt_to_maddr(), which is designed to work with VA from either the direct map region or Xen's linkage region (XEN_VIRT_START), thereby an assertion will occur if it is used with other regions, in particular for the VMAP region. The solution is usage of pt_walk() for vmap_to_mfn(). 2. pt_mapping_level() returns incorrect page table level in the case when mfn==INVALID_MFN when, for example, VA was mapped to PA using 4k mapping, but during destroying/modification pt_mapping_level() could return incorrect page table level as when mfn==INVALID_MFN then only VA is taking into account for page table level calculation and so if VA is page table level 1 aligned then page_mapping_level() will return level 1 ( instead of level 0 as VA was mapped to PA using 4k mapping so there is incostinency here ). The solution is usage of pt_walk() to recieve mfn and use both mfn and VA for proper page table level calculation. It would be nice to have these fixes in Xen 4.20 but isn't really critical as there is no any users for RISC-V port at this moment. Oleksii Kurochko (3): xen/riscv: implement software page table walking xen/riscv: update defintion of vmap_to_mfn() xen/riscv: update mfn calculation in pt_mapping_level() xen/arch/riscv/include/asm/mm.h | 4 +- xen/arch/riscv/pt.c | 84 ++++++++++++++++++++++++++++++++- 2 files changed, 85 insertions(+), 3 deletions(-) -- 2.48.1
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |