>From fbeb4f42542b7fd996331529a8e3afe3f62ee462 Mon Sep 17 00:00:00 2001
From: Zhang Xiantao <[EMAIL PROTECTED]>
Date: Tue, 20 Nov 2007 22:45:32 +0800
Subject: [PATCH] KVM Portability: Splitting kvm structure
Moving naliases and aliases fileds to kvm_x86.
Signed-off-by: Zhang Xiantao <[EMAIL PROTECTED]>
---
 drivers/kvm/kvm.h      |    2 --
 drivers/kvm/kvm_main.c |    5 +++--
 drivers/kvm/x86.c      |    7 ++++---
 drivers/kvm/x86.h      |    2 ++
 4 files changed, 9 insertions(+), 7 deletions(-)

diff --git a/drivers/kvm/kvm.h b/drivers/kvm/kvm.h
index b65f5de..476150c 100644
--- a/drivers/kvm/kvm.h
+++ b/drivers/kvm/kvm.h
@@ -304,8 +304,6 @@ struct kvm_vm_stat {
 
 struct kvm {
        struct mutex lock; /* protects everything except vcpus */
-       int naliases;
-       struct kvm_mem_alias aliases[KVM_ALIAS_SLOTS];
        int nmemslots;
        struct kvm_memory_slot memslots[KVM_MEMORY_SLOTS +
                                        KVM_PRIVATE_MEM_SLOTS];
diff --git a/drivers/kvm/kvm_main.c b/drivers/kvm/kvm_main.c
index 2733fbf..2490e06 100644
--- a/drivers/kvm/kvm_main.c
+++ b/drivers/kvm/kvm_main.c
@@ -404,9 +404,10 @@ gfn_t unalias_gfn(struct kvm *kvm, gfn_t gfn)
 {
        int i;
        struct kvm_mem_alias *alias;
+       struct kvm_x86 *kvm_x86 = to_kvm_x86(kvm);
 
-       for (i = 0; i < kvm->naliases; ++i) {
-               alias = &kvm->aliases[i];
+       for (i = 0; i < kvm_x86->naliases; ++i) {
+               alias = &kvm_x86->aliases[i];
                if (gfn >= alias->base_gfn
                    && gfn < alias->base_gfn + alias->npages)
                        return alias->target_gfn + gfn -
alias->base_gfn;
diff --git a/drivers/kvm/x86.c b/drivers/kvm/x86.c
index fd2ccb9..15b43f5 100644
--- a/drivers/kvm/x86.c
+++ b/drivers/kvm/x86.c
@@ -843,6 +843,7 @@ static int kvm_vm_ioctl_set_memory_alias(struct kvm
*kvm,
 {
        int r, n;
        struct kvm_mem_alias *p;
+       struct kvm_x86 *kvm_x86 = to_kvm_x86(kvm);
 
        r = -EINVAL;
        /* General sanity checks */
@@ -861,15 +862,15 @@ static int kvm_vm_ioctl_set_memory_alias(struct
kvm *kvm,
 
        mutex_lock(&kvm->lock);
 
-       p = &kvm->aliases[alias->slot];
+       p = &kvm_x86->aliases[alias->slot];
        p->base_gfn = alias->guest_phys_addr >> PAGE_SHIFT;
        p->npages = alias->memory_size >> PAGE_SHIFT;
        p->target_gfn = alias->target_phys_addr >> PAGE_SHIFT;
 
        for (n = KVM_ALIAS_SLOTS; n > 0; --n)
-               if (kvm->aliases[n - 1].npages)
+               if (kvm_x86->aliases[n - 1].npages)
                        break;
-       kvm->naliases = n;
+       kvm_x86->naliases = n;
 
        kvm_mmu_zap_all(kvm);
 
diff --git a/drivers/kvm/x86.h b/drivers/kvm/x86.h
index 5a87557..e5db023 100644
--- a/drivers/kvm/x86.h
+++ b/drivers/kvm/x86.h
@@ -158,6 +158,8 @@ struct kvm_vcpu {
 
 struct kvm_x86 {
        struct kvm kvm;
+       int naliases;
+       struct kvm_mem_alias aliases[KVM_ALIAS_SLOTS];
 };
 
 static inline struct kvm_x86 *to_kvm_x86(struct kvm *kvm)
-- 
1.5.1.2

Attachment: 0002-KVM-Portability-Splitting-kvm-structure.patch
Description: 0002-KVM-Portability-Splitting-kvm-structure.patch

-------------------------------------------------------------------------
This SF.net email is sponsored by: Microsoft
Defy all challenges. Microsoft(R) Visual Studio 2005.
http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/
_______________________________________________
kvm-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/kvm-devel

Reply via email to