lkml.org 
[lkml]   [2012]   [Jul]   [29]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    Date
    From
    Subject[PATCH 1/9] KVM: iommu: fix releasing unmapped page
    There are two bugs:
    - the 'error page' is forgot to be released
    [ it is unneeded after commit a2766325cf9f9, for backport, we
    still do kvm_release_pfn_clean for the error pfn ]

    - guest pages are always released regardless of the unmapped page
    (e,g, caused by hwpoison)

    Signed-off-by: Xiao Guangrong <xiaoguangrong@linux.vnet.ibm.com>
    ---
    virt/kvm/iommu.c | 7 +++++++
    1 files changed, 7 insertions(+), 0 deletions(-)

    diff --git a/virt/kvm/iommu.c b/virt/kvm/iommu.c
    index c03f1fb..6a67bea 100644
    --- a/virt/kvm/iommu.c
    +++ b/virt/kvm/iommu.c
    @@ -107,6 +107,7 @@ int kvm_iommu_map_pages(struct kvm *kvm, struct kvm_memory_slot *slot)
    */
    pfn = kvm_pin_pages(slot, gfn, page_size);
    if (is_error_pfn(pfn)) {
    + kvm_release_pfn_clean(pfn);
    gfn += 1;
    continue;
    }
    @@ -300,6 +301,12 @@ static void kvm_iommu_put_pages(struct kvm *kvm,

    /* Get physical address */
    phys = iommu_iova_to_phys(domain, gfn_to_gpa(gfn));
    +
    + if (!phys) {
    + gfn++;
    + continue;
    + }
    +
    pfn = phys >> PAGE_SHIFT;

    /* Unmap address from IO address space */
    --
    1.7.7.6


    \
     
     \ /
      Last update: 2012-07-29 11:01    [W:0.023 / U:60.972 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site