>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
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
