From: Avi Kivity <avi@qumranet.com>
To: linux-kernel@vger.kernel.org, kvm-devel@lists.sourceforge.net
Cc: Zhang Xiantao <xiantao.zhang@intel.com>
Subject: [PATCH 55/55] KVM: Portability: Make kvm_vcpu_ioctl_translate arch dependent
Date: Wed, 26 Dec 2007 13:06:00 +0200 [thread overview]
Message-ID: <1198667160-22953-56-git-send-email-avi@qumranet.com> (raw)
In-Reply-To: <1198667160-22953-1-git-send-email-avi@qumranet.com>
From: Zhang Xiantao <xiantao.zhang@intel.com>
Move kvm_vcpu_ioctl_translate to arch, since mmu would be put under arch.
Signed-off-by: Zhang Xiantao <xiantao.zhang@intel.com>
Signed-off-by: Avi Kivity <avi@qumranet.com>
---
drivers/kvm/kvm.h | 3 +++
drivers/kvm/kvm_main.c | 24 +-----------------------
drivers/kvm/x86.c | 22 ++++++++++++++++++++++
3 files changed, 26 insertions(+), 23 deletions(-)
diff --git a/drivers/kvm/kvm.h b/drivers/kvm/kvm.h
index a7be073..e34e246 100644
--- a/drivers/kvm/kvm.h
+++ b/drivers/kvm/kvm.h
@@ -642,6 +642,9 @@ void kvm_arch_destroy_vm(struct kvm *kvm);
int kvm_arch_vcpu_ioctl_get_fpu(struct kvm_vcpu *vcpu, struct kvm_fpu *fpu);
int kvm_arch_vcpu_ioctl_set_fpu(struct kvm_vcpu *vcpu, struct kvm_fpu *fpu);
+int kvm_arch_vcpu_ioctl_translate(struct kvm_vcpu *vcpu,
+ struct kvm_translation *tr);
+
int kvm_arch_vcpu_ioctl_get_regs(struct kvm_vcpu *vcpu, struct kvm_regs *regs);
int kvm_arch_vcpu_ioctl_set_regs(struct kvm_vcpu *vcpu, struct kvm_regs *regs);
int kvm_arch_vcpu_ioctl_get_sregs(struct kvm_vcpu *vcpu,
diff --git a/drivers/kvm/kvm_main.c b/drivers/kvm/kvm_main.c
index 9d63a10..bce4216 100644
--- a/drivers/kvm/kvm_main.c
+++ b/drivers/kvm/kvm_main.c
@@ -761,28 +761,6 @@ void kvm_resched(struct kvm_vcpu *vcpu)
}
EXPORT_SYMBOL_GPL(kvm_resched);
-/*
- * Translate a guest virtual address to a guest physical address.
- */
-static int kvm_vcpu_ioctl_translate(struct kvm_vcpu *vcpu,
- struct kvm_translation *tr)
-{
- unsigned long vaddr = tr->linear_address;
- gpa_t gpa;
-
- vcpu_load(vcpu);
- mutex_lock(&vcpu->kvm->lock);
- gpa = vcpu->mmu.gva_to_gpa(vcpu, vaddr);
- tr->physical_address = gpa;
- tr->valid = gpa != UNMAPPED_GVA;
- tr->writeable = 1;
- tr->usermode = 0;
- mutex_unlock(&vcpu->kvm->lock);
- vcpu_put(vcpu);
-
- return 0;
-}
-
static int kvm_vcpu_ioctl_interrupt(struct kvm_vcpu *vcpu,
struct kvm_interrupt *irq)
{
@@ -986,7 +964,7 @@ static long kvm_vcpu_ioctl(struct file *filp,
r = -EFAULT;
if (copy_from_user(&tr, argp, sizeof tr))
goto out;
- r = kvm_vcpu_ioctl_translate(vcpu, &tr);
+ r = kvm_arch_vcpu_ioctl_translate(vcpu, &tr);
if (r)
goto out;
r = -EFAULT;
diff --git a/drivers/kvm/x86.c b/drivers/kvm/x86.c
index 6097926..f1746af 100644
--- a/drivers/kvm/x86.c
+++ b/drivers/kvm/x86.c
@@ -2318,6 +2318,28 @@ struct fxsave {
#endif
};
+/*
+ * Translate a guest virtual address to a guest physical address.
+ */
+int kvm_arch_vcpu_ioctl_translate(struct kvm_vcpu *vcpu,
+ struct kvm_translation *tr)
+{
+ unsigned long vaddr = tr->linear_address;
+ gpa_t gpa;
+
+ vcpu_load(vcpu);
+ mutex_lock(&vcpu->kvm->lock);
+ gpa = vcpu->mmu.gva_to_gpa(vcpu, vaddr);
+ tr->physical_address = gpa;
+ tr->valid = gpa != UNMAPPED_GVA;
+ tr->writeable = 1;
+ tr->usermode = 0;
+ mutex_unlock(&vcpu->kvm->lock);
+ vcpu_put(vcpu);
+
+ return 0;
+}
+
int kvm_arch_vcpu_ioctl_get_fpu(struct kvm_vcpu *vcpu, struct kvm_fpu *fpu)
{
struct fxsave *fxsave = (struct fxsave *)&vcpu->guest_fx_image;
--
1.5.3.7
next prev parent reply other threads:[~2007-12-26 11:21 UTC|newest]
Thread overview: 60+ messages / expand[flat|nested] mbox.gz Atom feed top
2007-12-26 11:05 [PATCH 00/55] KVM patch queue review for 2.6.25 merge window (part II) Avi Kivity
2007-12-26 11:05 ` [PATCH 01/55] KVM: Portability: Split kvm_vcpu into arch dependent and independent parts (part 1) Avi Kivity
2007-12-26 11:05 ` [PATCH 02/55] KVM: Move vmx_vcpu_reset() out of vmx_vcpu_setup() Avi Kivity
2007-12-26 11:05 ` [PATCH 03/55] KVM: Add a might_sleep() annotation to gfn_to_page() Avi Kivity
2007-12-26 11:05 ` [PATCH 04/55] KVM: Export PIC reset for kernel device reset Avi Kivity
2007-12-26 11:05 ` [PATCH 05/55] KVM: Split IOAPIC reset function and export for kernel RESET Avi Kivity
2007-12-26 11:05 ` [PATCH 06/55] KVM: Per-architecture hypercall definitions Avi Kivity
2007-12-26 19:32 ` Pavel Machek
2007-12-27 7:03 ` Avi Kivity
2007-12-26 11:05 ` [PATCH 07/55] KVM: Unmap kernel-allocated memory on slot destruction Avi Kivity
2007-12-26 11:05 ` [PATCH 08/55] KVM: Export memory slot allocation mechanism Avi Kivity
2007-12-26 11:05 ` [PATCH 09/55] KVM: Add kernel-internal memory slots Avi Kivity
2007-12-26 11:05 ` [PATCH 10/55] KVM: Add ioctl to tss address from userspace, Avi Kivity
2007-12-26 11:05 ` [PATCH 11/55] KVM: VMX: Let gcc to choose which registers to save (x86_64) Avi Kivity
2007-12-26 11:05 ` [PATCH 12/55] KVM: VMX: Let gcc to choose which registers to save (i386) Avi Kivity
2007-12-26 11:05 ` [PATCH 13/55] KVM: SVM: Let gcc to choose which registers to save (x86_64) Avi Kivity
2007-12-26 11:05 ` [PATCH 14/55] KVM: SVM: Let gcc to choose which registers to save (i386) Avi Kivity
2007-12-26 11:05 ` [PATCH 15/55] KVM: x86 emulator: don't depend on cr2 for mov abs emulation Avi Kivity
2007-12-26 11:05 ` [PATCH 16/55] KVM: Move page fault processing to common code Avi Kivity
2007-12-26 11:05 ` [PATCH 17/55] KVM: MMU: Topup the mmu memory preallocation caches before emulating an insn Avi Kivity
2007-12-26 11:05 ` [PATCH 18/55] KVM: Portability: Split kvm_vm_ioctl v3 Avi Kivity
2007-12-26 11:05 ` [PATCH 19/55] KVM: Portability: Move memory segmentation to x86.c Avi Kivity
2007-12-26 11:05 ` [PATCH 20/55] KVM: Portability: move get/set_apic_base " Avi Kivity
2007-12-26 11:05 ` [PATCH 21/55] KVM: Portability: Move control register helper functions " Avi Kivity
2007-12-26 11:05 ` [PATCH 22/55] KVM: VMX: Enable memory mapped TPR shadow (FlexPriority) Avi Kivity
2007-12-26 11:05 ` [PATCH 23/55] KVM: Fix gfn_to_page() acquiring mmap_sem twice Avi Kivity
2007-12-26 11:05 ` [PATCH 24/55] KVM: Portability: Move kvm_get/set_msr[_common] to x86.c Avi Kivity
2007-12-26 11:05 ` [PATCH 25/55] KVM: Portability: Move x86 emulation and mmio device hook " Avi Kivity
2007-12-26 11:05 ` [PATCH 26/55] KVM: Portability: Move pio emulation functions " Avi Kivity
2007-12-26 11:05 ` [PATCH 27/55] KVM: x86 emulator: Extract the common code of SrcReg and DstReg Avi Kivity
2007-12-26 11:05 ` [PATCH 28/55] KVM: x86 emulator: centralize decoding of one-byte register access insns Avi Kivity
2007-12-26 11:05 ` [PATCH 29/55] KVM: Simplify decode_register_operand() calling convention Avi Kivity
2007-12-26 11:05 ` [PATCH 30/55] KVM: Make mark_page_dirty() work for aliased pages too Avi Kivity
2007-12-26 11:05 ` [PATCH 31/55] KVM: x86 emulator: Hoist modrm and abs decoding into separate functions Avi Kivity
2007-12-26 11:05 ` [PATCH 32/55] KVM: Portability: Make exported debugfs data architecture-specific Avi Kivity
2007-12-26 11:05 ` [PATCH 33/55] KVM: Portability: Move x86 instruction emulation code to x86.c Avi Kivity
2007-12-26 11:05 ` [PATCH 34/55] KVM: Portability: Move x86 FPU handling " Avi Kivity
2007-12-26 11:05 ` [PATCH 35/55] KVM: Portability: Move x86 vcpu ioctl handlers " Avi Kivity
2007-12-26 11:05 ` [PATCH 36/55] KVM: Add make_page_dirty() to kvm_clear_guest_page() Avi Kivity
2007-12-26 11:05 ` [PATCH 37/55] KVM: VMX: Use vmx to inject real-mode interrupts Avi Kivity
2007-12-26 11:05 ` [PATCH 38/55] KVM: VMX: Read & store IDT_VECTORING_INFO_FIELD Avi Kivity
2007-12-26 11:05 ` [PATCH 39/55] KVM: Fix faults during injection of real-mode interrupts Avi Kivity
2007-12-26 11:05 ` [PATCH 40/55] KVM: VMX: Comment VMX primary/secondary exec ctl definitions Avi Kivity
2007-12-26 11:05 ` [PATCH 41/55] KVM: VMX: wbinvd exiting Avi Kivity
2007-12-26 11:05 ` [PATCH 42/55] KVM: x86 emulator: remove 8 bytes operands emulator for call near instruction Avi Kivity
2007-12-26 11:05 ` [PATCH 43/55] KVM: Simplify CPU_TASKS_FROZEN cpu notifier handling Avi Kivity
2007-12-26 11:05 ` [PATCH 44/55] KVM: add kvm_is_error_hva() Avi Kivity
2007-12-26 11:05 ` [PATCH 45/55] KVM: introduce gfn_to_hva() Avi Kivity
2007-12-26 11:05 ` [PATCH 46/55] KVM: Change kvm_{read,write}_guest() to use copy_{from,to}_user() Avi Kivity
2007-12-26 11:05 ` [PATCH 47/55] KVM: Portability: Move some includes to x86.c Avi Kivity
2007-12-26 11:05 ` [PATCH 48/55] KVM: Portability: Move kvm_x86_ops " Avi Kivity
2007-12-26 11:05 ` [PATCH 49/55] KVM: Portability: Add vcpu and hardware management arch hooks Avi Kivity
2007-12-26 11:05 ` [PATCH 50/55] KVM: Portability: Combine kvm_init and kvm_init_x86 Avi Kivity
2007-12-26 11:05 ` [PATCH 51/55] KVM: Portability: Move x86 specific code from kvm_init() to kvm_arch() Avi Kivity
2007-12-26 11:05 ` [PATCH 52/55] KVM: x86 emulator: modify 'lods', and 'stos' not to depend on CR2 Avi Kivity
2007-12-26 11:05 ` [PATCH 53/55] KVM: Portability: move KVM_CHECK_EXTENSION Avi Kivity
2007-12-26 11:05 ` [PATCH 54/55] KVM: VMX: Consolidate register usage in vmx_vcpu_run() Avi Kivity
2007-12-26 11:06 ` Avi Kivity [this message]
2007-12-26 20:47 ` [PATCH 00/55] KVM patch queue review for 2.6.25 merge window (part II) Sam Ravnborg
2007-12-27 6:51 ` Avi Kivity
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1198667160-22953-56-git-send-email-avi@qumranet.com \
--to=avi@qumranet.com \
--cc=kvm-devel@lists.sourceforge.net \
--cc=linux-kernel@vger.kernel.org \
--cc=xiantao.zhang@intel.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox
all inboxes | Powered by JetHome®