• Konrad Rzeszutek Wilk's avatar
    xen/pvh: Piggyback on PVHVM for grant driver (v4) · 6926f6d6
    Konrad Rzeszutek Wilk authored
    In PVH the shared grant frame is the PFN and not MFN,
    hence its mapped via the same code path as HVM.
    
    The allocation of the grant frame is done differently - we
    do not use the early platform-pci driver and have an
    ioremap area - instead we use balloon memory and stitch
    all of the non-contingous pages in a virtualized area.
    
    That means when we call the hypervisor to replace the GMFN
    with a XENMAPSPACE_grant_table type, we need to lookup the
    old PFN for every iteration instead of assuming a flat
    contingous PFN allocation.
    
    Lastly, we only use v1 for grants. This is because PVHVM
    is not able to use v2 due to no XENMEM_add_to_physmap
    calls on the error status page (see commit
    69e8f430
     xen/granttable: Disable grant v2 for HVM domains.)
    
    Until that is implemented this workaround has to
    be in place.
    
    Also per suggestions by Stefano utilize the PVHVM paths
    as they share common functionality.
    
    v2 of this patch moves most of the PVH code out in the
    arch/x86/xen/grant-table driver and touches only minimally
    the generic driver.
    
    v3, v4: fixes us some of the code due to earlier patches.
    Signed-off-by: default avatarKonrad Rzeszutek Wilk <konrad.wilk@oracle.com>
    Acked-by: default avatarStefano Stabellini <stefano.stabellini@eu.citrix.com>
    6926f6d6
grant-table.c 35.3 KB