lkml.org 
[lkml]   [2011]   [Feb]   [22]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    Date
    From
    Subject[PATCH 2/7] KVM: introduce KVM_MEM_SLOTS_NUM macro
    Introduce KVM_MEM_SLOTS_NUM macro to instead of
    KVM_MEMORY_SLOTS + KVM_PRIVATE_MEM_SLOTS

    Signed-off-by: Xiao Guangrong <xiaoguangrong@cn.fujitsu.com>
    ---
    arch/x86/include/asm/kvm_host.h | 3 ++-
    arch/x86/kvm/mmu.c | 2 +-
    include/linux/kvm_host.h | 7 +++++--
    virt/kvm/kvm_main.c | 2 +-
    4 files changed, 9 insertions(+), 5 deletions(-)

    diff --git a/arch/x86/include/asm/kvm_host.h b/arch/x86/include/asm/kvm_host.h
    index 37bd730..178d658 100644
    --- a/arch/x86/include/asm/kvm_host.h
    +++ b/arch/x86/include/asm/kvm_host.h
    @@ -30,6 +30,7 @@
    #define KVM_MEMORY_SLOTS 32
    /* memory slots that does not exposed to userspace */
    #define KVM_PRIVATE_MEM_SLOTS 4
    +#define KVM_MEM_SLOTS_NUM (KVM_MEMORY_SLOTS + KVM_PRIVATE_MEM_SLOTS)

    #define KVM_PIO_PAGE_OFFSET 1
    #define KVM_COALESCED_MMIO_PAGE_OFFSET 2
    @@ -207,7 +208,7 @@ struct kvm_mmu_page {
    * One bit set per slot which has memory
    * in this shadow page.
    */
    - DECLARE_BITMAP(slot_bitmap, KVM_MEMORY_SLOTS + KVM_PRIVATE_MEM_SLOTS);
    + DECLARE_BITMAP(slot_bitmap, KVM_MEM_SLOTS_NUM);
    bool multimapped; /* More than one parent_pte? */
    bool unsync;
    int root_count; /* Currently serving as active root */
    diff --git a/arch/x86/kvm/mmu.c b/arch/x86/kvm/mmu.c
    index b6a9963..268c891 100644
    --- a/arch/x86/kvm/mmu.c
    +++ b/arch/x86/kvm/mmu.c
    @@ -1056,7 +1056,7 @@ static struct kvm_mmu_page *kvm_mmu_alloc_page(struct kvm_vcpu *vcpu,
    PAGE_SIZE);
    set_page_private(virt_to_page(sp->spt), (unsigned long)sp);
    list_add(&sp->link, &vcpu->kvm->arch.active_mmu_pages);
    - bitmap_zero(sp->slot_bitmap, KVM_MEMORY_SLOTS + KVM_PRIVATE_MEM_SLOTS);
    + bitmap_zero(sp->slot_bitmap, KVM_MEM_SLOTS_NUM);
    sp->multimapped = 0;
    sp->parent_pte = parent_pte;
    kvm_mod_used_mmu_pages(vcpu->kvm, +1);
    diff --git a/include/linux/kvm_host.h b/include/linux/kvm_host.h
    index b1a7430..865486f 100644
    --- a/include/linux/kvm_host.h
    +++ b/include/linux/kvm_host.h
    @@ -217,11 +217,14 @@ struct kvm_irq_routing_table {};

    #endif

    +#ifndef KVM_MEM_SLOTS_NUM
    +#define KVM_MEM_SLOTS_NUM (KVM_MEMORY_SLOTS + KVM_PRIVATE_MEM_SLOTS)
    +#endif
    +
    struct kvm_memslots {
    int nmemslots;
    u64 generation;
    - struct kvm_memory_slot memslots[KVM_MEMORY_SLOTS +
    - KVM_PRIVATE_MEM_SLOTS];
    + struct kvm_memory_slot memslots[KVM_MEM_SLOTS_NUM];
    };

    struct kvm {
    diff --git a/virt/kvm/kvm_main.c b/virt/kvm/kvm_main.c
    index cf90f28..e3e744c 100644
    --- a/virt/kvm/kvm_main.c
    +++ b/virt/kvm/kvm_main.c
    @@ -651,7 +651,7 @@ int __kvm_set_memory_region(struct kvm *kvm,
    goto out;
    if (user_alloc && (mem->userspace_addr & (PAGE_SIZE - 1)))
    goto out;
    - if (mem->slot >= KVM_MEMORY_SLOTS + KVM_PRIVATE_MEM_SLOTS)
    + if (mem->slot >= KVM_MEM_SLOTS_NUM)
    goto out;
    if (mem->guest_phys_addr + mem->memory_size < mem->guest_phys_addr)
    goto out;
    --
    1.7.4


    \
     
     \ /
      Last update: 2011-02-22 09:11    [W:0.028 / U:63.344 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site