From mboxrd@z Thu Jan 1 00:00:00 1970 From: Christian Ehrhardt Subject: [PATCH 1/5] Architecture independence layer - v1 - x86 renaming Date: Fri, 24 Aug 2007 13:52:28 +0200 Message-ID: <46CEC67C.3020406@linux.vnet.ibm.com> Mime-Version: 1.0 Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable To: "kvm-devel-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f@public.gmane.org" Return-path: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: kvm-devel-bounces-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f@public.gmane.org Errors-To: kvm-devel-bounces-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f@public.gmane.org List-Id: kvm.vger.kernel.org from Christian Ehrhardt This patch just renames the current _arch namings to _x86 to ensure = better readability when a real arch layer takes place Signed-off-by: Christian Ehrhardt --- kvm.h | 8 +- kvm_main.c | 156 = +++++++++++++++++++++++++++++----------------------------- mmu.c | 6 +- paging_tmpl.h | 2 svm.c | 6 +- vmx.c | 6 +- x86_emulate.c | 4 - 7 files changed, 94 insertions(+), 94 deletions(-) diff --git a/drivers/kvm/kvm.h b/drivers/kvm/kvm.h index 70231f3..a3dcc96 100644 --- a/drivers/kvm/kvm.h +++ b/drivers/kvm/kvm.h @@ -415,7 +415,7 @@ struct descriptor_table { unsigned long base; } __attribute__((packed)); = -struct kvm_arch_ops { +struct kvm_x86_ops { int (*cpu_has_kvm_support)(void); /* __init */ int (*disabled_by_bios)(void); /* __init */ void (*hardware_enable)(void *dummy); /* __init */ @@ -472,7 +472,7 @@ struct kvm_arch_ops { unsigned char *hypercall_addr); }; = -extern struct kvm_arch_ops *kvm_arch_ops; +extern struct kvm_x86_ops *kvm_x86_ops; = /* The guest did something we don't support. */ #define pr_unimpl(vcpu, fmt, ...) \ @@ -488,9 +488,9 @@ extern struct kvm_arch_ops *kvm_arch_ops; int kvm_vcpu_init(struct kvm_vcpu *vcpu, struct kvm *kvm, unsigned id); void kvm_vcpu_uninit(struct kvm_vcpu *vcpu); = -int kvm_init_arch(struct kvm_arch_ops *ops, unsigned int vcpu_size, +int kvm_init_x86(struct kvm_x86_ops *ops, unsigned int vcpu_size, struct module *module); -void kvm_exit_arch(void); +void kvm_exit_x86(void); = int kvm_mmu_module_init(void); void kvm_mmu_module_exit(void); diff --git a/drivers/kvm/kvm_main.c b/drivers/kvm/kvm_main.c index f7ff231..64c2cc4 100644 --- a/drivers/kvm/kvm_main.c +++ b/drivers/kvm/kvm_main.c @@ -52,7 +52,7 @@ static LIST_HEAD(vm_list); = static cpumask_t cpus_hardware_enabled; = -struct kvm_arch_ops *kvm_arch_ops; +struct kvm_x86_ops *kvm_x86_ops; struct kmem_cache *kvm_vcpu_cache; EXPORT_SYMBOL_GPL(kvm_vcpu_cache); = @@ -180,14 +180,14 @@ static void vcpu_load(struct kvm_vcpu *vcpu) mutex_lock(&vcpu->mutex); cpu =3D get_cpu(); preempt_notifier_register(&vcpu->preempt_notifier); - kvm_arch_ops->vcpu_load(vcpu, cpu); + kvm_x86_ops->vcpu_load(vcpu, cpu); put_cpu(); } = static void vcpu_put(struct kvm_vcpu *vcpu) { preempt_disable(); - kvm_arch_ops->vcpu_put(vcpu); + kvm_x86_ops->vcpu_put(vcpu); preempt_notifier_unregister(&vcpu->preempt_notifier); preempt_enable(); mutex_unlock(&vcpu->mutex); @@ -364,7 +364,7 @@ static void kvm_free_vcpus(struct kvm *kvm) kvm_unload_vcpu_mmu(kvm->vcpus[i]); for (i =3D 0; i < KVM_MAX_VCPUS; ++i) { if (kvm->vcpus[i]) { - kvm_arch_ops->vcpu_free(kvm->vcpus[i]); + kvm_x86_ops->vcpu_free(kvm->vcpus[i]); kvm->vcpus[i] =3D NULL; } } @@ -393,7 +393,7 @@ static int kvm_vm_release(struct inode *inode, = struct file *filp) = static void inject_gp(struct kvm_vcpu *vcpu) { - kvm_arch_ops->inject_gp(vcpu, 0); + kvm_x86_ops->inject_gp(vcpu, 0); } = /* @@ -468,7 +468,7 @@ void set_cr0(struct kvm_vcpu *vcpu, unsigned long cr0) inject_gp(vcpu); return; } - kvm_arch_ops->get_cs_db_l_bits(vcpu, &cs_db, &cs_l); + kvm_x86_ops->get_cs_db_l_bits(vcpu, &cs_db, &cs_l); if (cs_l) { printk(KERN_DEBUG "set_cr0: #GP, start paging " "in long mode while CS.L =3D=3D 1\n"); @@ -487,7 +487,7 @@ void set_cr0(struct kvm_vcpu *vcpu, unsigned long cr0) = } = - kvm_arch_ops->set_cr0(vcpu, cr0); + kvm_x86_ops->set_cr0(vcpu, cr0); vcpu->cr0 =3D cr0; = mutex_lock(&vcpu->kvm->lock); @@ -530,7 +530,7 @@ void set_cr4(struct kvm_vcpu *vcpu, unsigned long cr4) inject_gp(vcpu); return; } - kvm_arch_ops->set_cr4(vcpu, cr4); + kvm_x86_ops->set_cr4(vcpu, cr4); mutex_lock(&vcpu->kvm->lock); kvm_mmu_reset_context(vcpu); mutex_unlock(&vcpu->kvm->lock); @@ -1048,7 +1048,7 @@ static int = emulator_write_emulated_onepage(unsigned long addr, gpa_t gpa =3D vcpu->mmu.gva_to_gpa(vcpu, addr); = if (gpa =3D=3D UNMAPPED_GVA) { - kvm_arch_ops->inject_page_fault(vcpu, addr, 2); + kvm_x86_ops->inject_page_fault(vcpu, addr, 2); return X86EMUL_PROPAGATE_FAULT; } = @@ -1111,7 +1111,7 @@ static int emulator_cmpxchg_emulated(unsigned long = addr, = static unsigned long get_segment_base(struct kvm_vcpu *vcpu, int seg) { - return kvm_arch_ops->get_segment_base(vcpu, seg); + return kvm_x86_ops->get_segment_base(vcpu, seg); } = int emulate_invlpg(struct kvm_vcpu *vcpu, gva_t address) @@ -1124,7 +1124,7 @@ int emulate_clts(struct kvm_vcpu *vcpu) unsigned long cr0; = cr0 =3D vcpu->cr0 & ~X86_CR0_TS; - kvm_arch_ops->set_cr0(vcpu, cr0); + kvm_x86_ops->set_cr0(vcpu, cr0); return X86EMUL_CONTINUE; } = @@ -1134,7 +1134,7 @@ int emulator_get_dr(struct x86_emulate_ctxt* ctxt, = int dr, unsigned long *dest) = switch (dr) { case 0 ... 3: - *dest =3D kvm_arch_ops->get_dr(vcpu, dr); + *dest =3D kvm_x86_ops->get_dr(vcpu, dr); return X86EMUL_CONTINUE; default: pr_unimpl(vcpu, "%s: unexpected dr %u\n", __FUNCTION__, dr); @@ -1147,7 +1147,7 @@ int emulator_set_dr(struct x86_emulate_ctxt *ctxt, = int dr, unsigned long value) unsigned long mask =3D (ctxt->mode =3D=3D X86EMUL_MODE_PROT64) ? ~0ULL= : ~0U; int exception; = - kvm_arch_ops->set_dr(ctxt->vcpu, dr, value & mask, &exception); + kvm_x86_ops->set_dr(ctxt->vcpu, dr, value & mask, &exception); if (exception) { /* FIXME: better handling */ return X86EMUL_UNHANDLEABLE; @@ -1193,12 +1193,12 @@ int emulate_instruction(struct kvm_vcpu *vcpu, int cs_db, cs_l; = vcpu->mmio_fault_cr2 =3D cr2; - kvm_arch_ops->cache_regs(vcpu); + kvm_x86_ops->cache_regs(vcpu); = - kvm_arch_ops->get_cs_db_l_bits(vcpu, &cs_db, &cs_l); + kvm_x86_ops->get_cs_db_l_bits(vcpu, &cs_db, &cs_l); = emulate_ctxt.vcpu =3D vcpu; - emulate_ctxt.eflags =3D kvm_arch_ops->get_rflags(vcpu); + emulate_ctxt.eflags =3D kvm_x86_ops->get_rflags(vcpu); emulate_ctxt.cr2 =3D cr2; emulate_ctxt.mode =3D (emulate_ctxt.eflags & X86_EFLAGS_VM) ? X86EMUL_MODE_REAL : cs_l @@ -1244,8 +1244,8 @@ int emulate_instruction(struct kvm_vcpu *vcpu, return EMULATE_DO_MMIO; } = - kvm_arch_ops->decache_regs(vcpu); - kvm_arch_ops->set_rflags(vcpu, emulate_ctxt.eflags); + kvm_x86_ops->decache_regs(vcpu); + kvm_x86_ops->set_rflags(vcpu, emulate_ctxt.eflags); = if (vcpu->mmio_is_write) { vcpu->mmio_needed =3D 0; @@ -1271,7 +1271,7 @@ int kvm_hypercall(struct kvm_vcpu *vcpu, struct = kvm_run *run) { unsigned long nr, a0, a1, a2, a3, a4, a5, ret; = - kvm_arch_ops->cache_regs(vcpu); + kvm_x86_ops->cache_regs(vcpu); ret =3D -KVM_EINVAL; #ifdef CONFIG_X86_64 if (is_long_mode(vcpu)) { @@ -1304,11 +1304,11 @@ int kvm_hypercall(struct kvm_vcpu *vcpu, struct = kvm_run *run) run->hypercall.args[5] =3D a5; run->hypercall.ret =3D ret; run->hypercall.longmode =3D is_long_mode(vcpu); - kvm_arch_ops->decache_regs(vcpu); + kvm_x86_ops->decache_regs(vcpu); return 0; } vcpu->regs[VCPU_REGS_RAX] =3D ret; - kvm_arch_ops->decache_regs(vcpu); + kvm_x86_ops->decache_regs(vcpu); return 1; } EXPORT_SYMBOL_GPL(kvm_hypercall); @@ -1322,26 +1322,26 @@ void realmode_lgdt(struct kvm_vcpu *vcpu, u16 = limit, unsigned long base) { struct descriptor_table dt =3D { limit, base }; = - kvm_arch_ops->set_gdt(vcpu, &dt); + kvm_x86_ops->set_gdt(vcpu, &dt); } = void realmode_lidt(struct kvm_vcpu *vcpu, u16 limit, unsigned long base) { struct descriptor_table dt =3D { limit, base }; = - kvm_arch_ops->set_idt(vcpu, &dt); + kvm_x86_ops->set_idt(vcpu, &dt); } = void realmode_lmsw(struct kvm_vcpu *vcpu, unsigned long msw, unsigned long *rflags) { lmsw(vcpu, msw); - *rflags =3D kvm_arch_ops->get_rflags(vcpu); + *rflags =3D kvm_x86_ops->get_rflags(vcpu); } = unsigned long realmode_get_cr(struct kvm_vcpu *vcpu, int cr) { - kvm_arch_ops->decache_cr4_guest_bits(vcpu); + kvm_x86_ops->decache_cr4_guest_bits(vcpu); switch (cr) { case 0: return vcpu->cr0; @@ -1363,7 +1363,7 @@ void realmode_set_cr(struct kvm_vcpu *vcpu, int = cr, unsigned long val, switch (cr) { case 0: set_cr0(vcpu, mk_cr_64(vcpu->cr0, val)); - *rflags =3D kvm_arch_ops->get_rflags(vcpu); + *rflags =3D kvm_x86_ops->get_rflags(vcpu); break; case 2: vcpu->cr2 =3D val; @@ -1437,7 +1437,7 @@ static int vcpu_register_para(struct kvm_vcpu = *vcpu, gpa_t para_state_gpa) mark_page_dirty(vcpu->kvm, hypercall_gpa >> PAGE_SHIFT); hypercall =3D kmap_atomic(pfn_to_page(hypercall_hpa >> PAGE_SHIFT), KM_USER1) + (hypercall_hpa & ~PAGE_MASK); - kvm_arch_ops->patch_hypercall(vcpu, hypercall); + kvm_x86_ops->patch_hypercall(vcpu, hypercall); kunmap_atomic(hypercall, KM_USER1); = para_state->ret =3D 0; @@ -1504,7 +1504,7 @@ EXPORT_SYMBOL_GPL(kvm_get_msr_common); */ int kvm_get_msr(struct kvm_vcpu *vcpu, u32 msr_index, u64 *pdata) { - return kvm_arch_ops->get_msr(vcpu, msr_index, pdata); + return kvm_x86_ops->get_msr(vcpu, msr_index, pdata); } = #ifdef CONFIG_X86_64 @@ -1525,7 +1525,7 @@ static void set_efer(struct kvm_vcpu *vcpu, u64 efer) return; } = - kvm_arch_ops->set_efer(vcpu, efer); + kvm_x86_ops->set_efer(vcpu, efer); = efer &=3D ~EFER_LMA; efer |=3D vcpu->shadow_efer & EFER_LMA; @@ -1582,7 +1582,7 @@ EXPORT_SYMBOL_GPL(kvm_set_msr_common); */ int kvm_set_msr(struct kvm_vcpu *vcpu, u32 msr_index, u64 data) { - return kvm_arch_ops->set_msr(vcpu, msr_index, data); + return kvm_x86_ops->set_msr(vcpu, msr_index, data); } = void kvm_resched(struct kvm_vcpu *vcpu) @@ -1599,7 +1599,7 @@ void kvm_emulate_cpuid(struct kvm_vcpu *vcpu) u32 function; struct kvm_cpuid_entry *e, *best; = - kvm_arch_ops->cache_regs(vcpu); + kvm_x86_ops->cache_regs(vcpu); function =3D vcpu->regs[VCPU_REGS_RAX]; vcpu->regs[VCPU_REGS_RAX] =3D 0; vcpu->regs[VCPU_REGS_RBX] =3D 0; @@ -1625,8 +1625,8 @@ void kvm_emulate_cpuid(struct kvm_vcpu *vcpu) vcpu->regs[VCPU_REGS_RCX] =3D best->ecx; vcpu->regs[VCPU_REGS_RDX] =3D best->edx; } - kvm_arch_ops->decache_regs(vcpu); - kvm_arch_ops->skip_emulated_instruction(vcpu); + kvm_x86_ops->decache_regs(vcpu); + kvm_x86_ops->skip_emulated_instruction(vcpu); } EXPORT_SYMBOL_GPL(kvm_emulate_cpuid); = @@ -1661,7 +1661,7 @@ static int complete_pio(struct kvm_vcpu *vcpu) long delta; int r; = - kvm_arch_ops->cache_regs(vcpu); + kvm_x86_ops->cache_regs(vcpu); = if (!io->string) { if (io->in) @@ -1671,7 +1671,7 @@ static int complete_pio(struct kvm_vcpu *vcpu) if (io->in) { r =3D pio_copy_data(vcpu); if (r) { - kvm_arch_ops->cache_regs(vcpu); + kvm_x86_ops->cache_regs(vcpu); return r; } } @@ -1694,13 +1694,13 @@ static int complete_pio(struct kvm_vcpu *vcpu) vcpu->regs[VCPU_REGS_RSI] +=3D delta; } = - kvm_arch_ops->decache_regs(vcpu); + kvm_x86_ops->decache_regs(vcpu); = io->count -=3D io->cur_count; io->cur_count =3D 0; = if (!io->count) - kvm_arch_ops->skip_emulated_instruction(vcpu); + kvm_x86_ops->skip_emulated_instruction(vcpu); return 0; } = @@ -1752,9 +1752,9 @@ int kvm_emulate_pio (struct kvm_vcpu *vcpu, struct = kvm_run *run, int in, vcpu->pio.guest_page_offset =3D 0; vcpu->pio.rep =3D 0; = - kvm_arch_ops->cache_regs(vcpu); + kvm_x86_ops->cache_regs(vcpu); memcpy(vcpu->pio_data, &vcpu->regs[VCPU_REGS_RAX], 4); - kvm_arch_ops->decache_regs(vcpu); + kvm_x86_ops->decache_regs(vcpu); = pio_dev =3D vcpu_find_pio_dev(vcpu, port); if (pio_dev) { @@ -1789,7 +1789,7 @@ int kvm_emulate_pio_string(struct kvm_vcpu *vcpu, = struct kvm_run *run, int in, vcpu->pio.rep =3D rep; = if (!count) { - kvm_arch_ops->skip_emulated_instruction(vcpu); + kvm_x86_ops->skip_emulated_instruction(vcpu); return 1; } = @@ -1886,12 +1886,12 @@ static int kvm_vcpu_ioctl_run(struct kvm_vcpu = *vcpu, struct kvm_run *kvm_run) } = if (kvm_run->exit_reason =3D=3D KVM_EXIT_HYPERCALL) { - kvm_arch_ops->cache_regs(vcpu); + kvm_x86_ops->cache_regs(vcpu); vcpu->regs[VCPU_REGS_RAX] =3D kvm_run->hypercall.ret; - kvm_arch_ops->decache_regs(vcpu); + kvm_x86_ops->decache_regs(vcpu); } = - r =3D kvm_arch_ops->run(vcpu, kvm_run); + r =3D kvm_x86_ops->run(vcpu, kvm_run); = out: if (vcpu->sigset_active) @@ -1906,7 +1906,7 @@ static int kvm_vcpu_ioctl_get_regs(struct kvm_vcpu = *vcpu, { vcpu_load(vcpu); = - kvm_arch_ops->cache_regs(vcpu); + kvm_x86_ops->cache_regs(vcpu); = regs->rax =3D vcpu->regs[VCPU_REGS_RAX]; regs->rbx =3D vcpu->regs[VCPU_REGS_RBX]; @@ -1928,7 +1928,7 @@ static int kvm_vcpu_ioctl_get_regs(struct kvm_vcpu = *vcpu, #endif = regs->rip =3D vcpu->rip; - regs->rflags =3D kvm_arch_ops->get_rflags(vcpu); + regs->rflags =3D kvm_x86_ops->get_rflags(vcpu); = /* * Don't leak debug flags in case they were set for guest debugging @@ -1966,9 +1966,9 @@ static int kvm_vcpu_ioctl_set_regs(struct kvm_vcpu = *vcpu, #endif = vcpu->rip =3D regs->rip; - kvm_arch_ops->set_rflags(vcpu, regs->rflags); + kvm_x86_ops->set_rflags(vcpu, regs->rflags); = - kvm_arch_ops->decache_regs(vcpu); + kvm_x86_ops->decache_regs(vcpu); = vcpu_put(vcpu); = @@ -1978,7 +1978,7 @@ static int kvm_vcpu_ioctl_set_regs(struct kvm_vcpu = *vcpu, static void get_segment(struct kvm_vcpu *vcpu, struct kvm_segment *var, int seg) { - return kvm_arch_ops->get_segment(vcpu, var, seg); + return kvm_x86_ops->get_segment(vcpu, var, seg); } = static int kvm_vcpu_ioctl_get_sregs(struct kvm_vcpu *vcpu, @@ -1998,14 +1998,14 @@ static int kvm_vcpu_ioctl_get_sregs(struct = kvm_vcpu *vcpu, get_segment(vcpu, &sregs->tr, VCPU_SREG_TR); get_segment(vcpu, &sregs->ldt, VCPU_SREG_LDTR); = - kvm_arch_ops->get_idt(vcpu, &dt); + kvm_x86_ops->get_idt(vcpu, &dt); sregs->idt.limit =3D dt.limit; sregs->idt.base =3D dt.base; - kvm_arch_ops->get_gdt(vcpu, &dt); + kvm_x86_ops->get_gdt(vcpu, &dt); sregs->gdt.limit =3D dt.limit; sregs->gdt.base =3D dt.base; = - kvm_arch_ops->decache_cr4_guest_bits(vcpu); + kvm_x86_ops->decache_cr4_guest_bits(vcpu); sregs->cr0 =3D vcpu->cr0; sregs->cr2 =3D vcpu->cr2; sregs->cr3 =3D vcpu->cr3; @@ -2025,7 +2025,7 @@ static int kvm_vcpu_ioctl_get_sregs(struct = kvm_vcpu *vcpu, static void set_segment(struct kvm_vcpu *vcpu, struct kvm_segment *var, int seg) { - return kvm_arch_ops->set_segment(vcpu, var, seg); + return kvm_x86_ops->set_segment(vcpu, var, seg); } = static int kvm_vcpu_ioctl_set_sregs(struct kvm_vcpu *vcpu, @@ -2039,10 +2039,10 @@ static int kvm_vcpu_ioctl_set_sregs(struct = kvm_vcpu *vcpu, = dt.limit =3D sregs->idt.limit; dt.base =3D sregs->idt.base; - kvm_arch_ops->set_idt(vcpu, &dt); + kvm_x86_ops->set_idt(vcpu, &dt); dt.limit =3D sregs->gdt.limit; dt.base =3D sregs->gdt.base; - kvm_arch_ops->set_gdt(vcpu, &dt); + kvm_x86_ops->set_gdt(vcpu, &dt); = vcpu->cr2 =3D sregs->cr2; mmu_reset_needed |=3D vcpu->cr3 !=3D sregs->cr3; @@ -2052,17 +2052,17 @@ static int kvm_vcpu_ioctl_set_sregs(struct = kvm_vcpu *vcpu, = mmu_reset_needed |=3D vcpu->shadow_efer !=3D sregs->efer; #ifdef CONFIG_X86_64 - kvm_arch_ops->set_efer(vcpu, sregs->efer); + kvm_x86_ops->set_efer(vcpu, sregs->efer); #endif vcpu->apic_base =3D sregs->apic_base; = - kvm_arch_ops->decache_cr4_guest_bits(vcpu); + kvm_x86_ops->decache_cr4_guest_bits(vcpu); = mmu_reset_needed |=3D vcpu->cr0 !=3D sregs->cr0; - kvm_arch_ops->set_cr0(vcpu, sregs->cr0); + kvm_x86_ops->set_cr0(vcpu, sregs->cr0); = mmu_reset_needed |=3D vcpu->cr4 !=3D sregs->cr4; - kvm_arch_ops->set_cr4(vcpu, sregs->cr4); + kvm_x86_ops->set_cr4(vcpu, sregs->cr4); if (!is_long_mode(vcpu) && is_pae(vcpu)) load_pdptrs(vcpu, vcpu->cr3); = @@ -2252,7 +2252,7 @@ static int kvm_vcpu_ioctl_debug_guest(struct = kvm_vcpu *vcpu, = vcpu_load(vcpu); = - r =3D kvm_arch_ops->set_guest_debug(vcpu, dbg); + r =3D kvm_x86_ops->set_guest_debug(vcpu, dbg); = vcpu_put(vcpu); = @@ -2334,7 +2334,7 @@ static int kvm_vm_ioctl_create_vcpu(struct kvm = *kvm, int n) if (!valid_vcpu(n)) return -EINVAL; = - vcpu =3D kvm_arch_ops->vcpu_create(kvm, n); + vcpu =3D kvm_x86_ops->vcpu_create(kvm, n); if (IS_ERR(vcpu)) return PTR_ERR(vcpu); = @@ -2375,7 +2375,7 @@ mmu_unload: vcpu_put(vcpu); = free_vcpu: - kvm_arch_ops->vcpu_free(vcpu); + kvm_x86_ops->vcpu_free(vcpu); return r; } = @@ -2881,7 +2881,7 @@ static void decache_vcpus_on_cpu(int cpu) */ if (mutex_trylock(&vcpu->mutex)) { if (vcpu->cpu =3D=3D cpu) { - kvm_arch_ops->vcpu_decache(vcpu); + kvm_x86_ops->vcpu_decache(vcpu); vcpu->cpu =3D -1; } mutex_unlock(&vcpu->mutex); @@ -2897,7 +2897,7 @@ static void hardware_enable(void *junk) if (cpu_isset(cpu, cpus_hardware_enabled)) return; cpu_set(cpu, cpus_hardware_enabled); - kvm_arch_ops->hardware_enable(NULL); + kvm_x86_ops->hardware_enable(NULL); } = static void hardware_disable(void *junk) @@ -2908,7 +2908,7 @@ static void hardware_disable(void *junk) return; cpu_clear(cpu, cpus_hardware_enabled); decache_vcpus_on_cpu(cpu); - kvm_arch_ops->hardware_disable(NULL); + kvm_x86_ops->hardware_disable(NULL); } = static int kvm_cpu_hotplug(struct notifier_block *notifier, unsigned = long val, @@ -3072,7 +3072,7 @@ static void kvm_sched_in(struct preempt_notifier = *pn, int cpu) { struct kvm_vcpu *vcpu =3D preempt_notifier_to_vcpu(pn); = - kvm_arch_ops->vcpu_load(vcpu, cpu); + kvm_x86_ops->vcpu_load(vcpu, cpu); } = static void kvm_sched_out(struct preempt_notifier *pn, @@ -3080,16 +3080,16 @@ static void kvm_sched_out(struct = preempt_notifier *pn, { struct kvm_vcpu *vcpu =3D preempt_notifier_to_vcpu(pn); = - kvm_arch_ops->vcpu_put(vcpu); + kvm_x86_ops->vcpu_put(vcpu); } = -int kvm_init_arch(struct kvm_arch_ops *ops, unsigned int vcpu_size, +int kvm_init_x86(struct kvm_x86_ops *ops, unsigned int vcpu_size, struct module *module) { int r; int cpu; = - if (kvm_arch_ops) { + if (kvm_x86_ops) { printk(KERN_ERR "kvm: already loaded the other module\n"); return -EEXIST; } @@ -3103,15 +3103,15 @@ int kvm_init_arch(struct kvm_arch_ops *ops, = unsigned int vcpu_size, return -EOPNOTSUPP; } = - kvm_arch_ops =3D ops; + kvm_x86_ops =3D ops; = - r =3D kvm_arch_ops->hardware_setup(); + r =3D kvm_x86_ops->hardware_setup(); if (r < 0) goto out; = for_each_online_cpu(cpu) { smp_call_function_single(cpu, - kvm_arch_ops->check_processor_compatibility, + kvm_x86_ops->check_processor_compatibility, &r, 0, 1); if (r < 0) goto out_free_0; @@ -3164,13 +3164,13 @@ out_free_2: out_free_1: on_each_cpu(hardware_disable, NULL, 0, 1); out_free_0: - kvm_arch_ops->hardware_unsetup(); + kvm_x86_ops->hardware_unsetup(); out: - kvm_arch_ops =3D NULL; + kvm_x86_ops =3D NULL; return r; } = -void kvm_exit_arch(void) +void kvm_exit_x86(void) { misc_deregister(&kvm_dev); kmem_cache_destroy(kvm_vcpu_cache); @@ -3179,8 +3179,8 @@ void kvm_exit_arch(void) unregister_reboot_notifier(&kvm_reboot_notifier); unregister_cpu_notifier(&kvm_cpu_notifier); on_each_cpu(hardware_disable, NULL, 0, 1); - kvm_arch_ops->hardware_unsetup(); - kvm_arch_ops =3D NULL; + kvm_x86_ops->hardware_unsetup(); + kvm_x86_ops =3D NULL; } = static __init int kvm_init(void) @@ -3223,5 +3223,5 @@ static __exit void kvm_exit(void) module_init(kvm_init) module_exit(kvm_exit) = -EXPORT_SYMBOL_GPL(kvm_init_arch); -EXPORT_SYMBOL_GPL(kvm_exit_arch); +EXPORT_SYMBOL_GPL(kvm_init_x86); +EXPORT_SYMBOL_GPL(kvm_exit_x86); diff --git a/drivers/kvm/mmu.c b/drivers/kvm/mmu.c index bfe16d5..ce072f8 100644 --- a/drivers/kvm/mmu.c +++ b/drivers/kvm/mmu.c @@ -965,7 +965,7 @@ static int nonpaging_init_context(struct kvm_vcpu *vcpu) static void kvm_mmu_flush_tlb(struct kvm_vcpu *vcpu) { ++vcpu->stat.tlb_flush; - kvm_arch_ops->tlb_flush(vcpu); + kvm_x86_ops->tlb_flush(vcpu); } = static void paging_new_cr3(struct kvm_vcpu *vcpu) @@ -978,7 +978,7 @@ static void inject_page_fault(struct kvm_vcpu *vcpu, u64 addr, u32 err_code) { - kvm_arch_ops->inject_page_fault(vcpu, addr, err_code); + kvm_x86_ops->inject_page_fault(vcpu, addr, err_code); } = static void paging_free(struct kvm_vcpu *vcpu) @@ -1072,7 +1072,7 @@ int kvm_mmu_load(struct kvm_vcpu *vcpu) if (r) goto out; mmu_alloc_roots(vcpu); - kvm_arch_ops->set_cr3(vcpu, vcpu->mmu.root_hpa); + kvm_x86_ops->set_cr3(vcpu, vcpu->mmu.root_hpa); kvm_mmu_flush_tlb(vcpu); out: mutex_unlock(&vcpu->kvm->lock); diff --git a/drivers/kvm/paging_tmpl.h b/drivers/kvm/paging_tmpl.h index 660243b..6b094b4 100644 --- a/drivers/kvm/paging_tmpl.h +++ b/drivers/kvm/paging_tmpl.h @@ -274,7 +274,7 @@ static void FNAME(set_pte_common)(struct kvm_vcpu *vcpu, access_bits &=3D ~PT_WRITABLE_MASK; if (is_writeble_pte(spte)) { spte &=3D ~PT_WRITABLE_MASK; - kvm_arch_ops->tlb_flush(vcpu); + kvm_x86_ops->tlb_flush(vcpu); } if (write_fault) *ptwrite =3D 1; diff --git a/drivers/kvm/svm.c b/drivers/kvm/svm.c index cc674bf..170d9ac 100644 --- a/drivers/kvm/svm.c +++ b/drivers/kvm/svm.c @@ -1673,7 +1673,7 @@ static void svm_check_processor_compat(void *rtn) *(int *)rtn =3D 0; } = -static struct kvm_arch_ops svm_arch_ops =3D { +static struct kvm_x86_ops svm_x86_ops =3D { .cpu_has_kvm_support =3D has_svm, .disabled_by_bios =3D is_disabled, .hardware_setup =3D svm_hardware_setup, @@ -1725,13 +1725,13 @@ static struct kvm_arch_ops svm_arch_ops =3D { = static int __init svm_init(void) { - return kvm_init_arch(&svm_arch_ops, sizeof(struct vcpu_svm), + return kvm_init_x86(&svm_x86_ops, sizeof(struct vcpu_svm), THIS_MODULE); } = static void __exit svm_exit(void) { - kvm_exit_arch(); + kvm_exit_x86(); } = module_init(svm_init) diff --git a/drivers/kvm/vmx.c b/drivers/kvm/vmx.c index cd999c0..1a6c675 100644 --- a/drivers/kvm/vmx.c +++ b/drivers/kvm/vmx.c @@ -2377,7 +2377,7 @@ static void __init vmx_check_processor_compat(void = *rtn) } } = -static struct kvm_arch_ops vmx_arch_ops =3D { +static struct kvm_x86_ops vmx_x86_ops =3D { .cpu_has_kvm_support =3D cpu_has_kvm_support, .disabled_by_bios =3D vmx_disabled_by_bios, .hardware_setup =3D hardware_setup, @@ -2454,7 +2454,7 @@ static int __init vmx_init(void) memset(iova, 0xff, PAGE_SIZE); kunmap(vmx_io_bitmap_b); = - r =3D kvm_init_arch(&vmx_arch_ops, sizeof(struct vcpu_vmx), THIS_MODUL= E); + r =3D kvm_init_x86(&vmx_x86_ops, sizeof(struct vcpu_vmx), THIS_MODULE); if (r) goto out1; = @@ -2472,7 +2472,7 @@ static void __exit vmx_exit(void) __free_page(vmx_io_bitmap_b); __free_page(vmx_io_bitmap_a); = - kvm_exit_arch(); + kvm_exit_x86(); } = module_init(vmx_init) diff --git a/drivers/kvm/x86_emulate.c b/drivers/kvm/x86_emulate.c index cf895aa..c8ad1e8 100644 --- a/drivers/kvm/x86_emulate.c +++ b/drivers/kvm/x86_emulate.c @@ -1443,7 +1443,7 @@ twobyte_special_insn: | ((u64)_regs[VCPU_REGS_RDX] << 32); rc =3D kvm_set_msr(ctxt->vcpu, _regs[VCPU_REGS_RCX], msr_data); if (rc) { - kvm_arch_ops->inject_gp(ctxt->vcpu, 0); + kvm_x86_ops->inject_gp(ctxt->vcpu, 0); _eip =3D ctxt->vcpu->rip; } rc =3D X86EMUL_CONTINUE; @@ -1452,7 +1452,7 @@ twobyte_special_insn: /* rdmsr */ rc =3D kvm_get_msr(ctxt->vcpu, _regs[VCPU_REGS_RCX], &msr_data); if (rc) { - kvm_arch_ops->inject_gp(ctxt->vcpu, 0); + kvm_x86_ops->inject_gp(ctxt->vcpu, 0); _eip =3D ctxt->vcpu->rip; } else { _regs[VCPU_REGS_RAX] =3D (u32)msr_data; -- = Gr=FCsse / regards, = Christian Ehrhardt IBM Linux Technology Center, Open Virtualization +49 7031/16-3385 Ehrhardt-23VcF4HTsmIX0ybBhKVfKdBPR1lH4CV8@public.gmane.org Ehrhardt-tA70FqPdS9bQT0dZR+AlfA@public.gmane.org IBM Deutschland Entwicklung GmbH Vorsitzender des Aufsichtsrats: Johann Weihen = Gesch=E4ftsf=FChrung: Herbert Kircher = Sitz der Gesellschaft: B=F6blingen Registergericht: Amtsgericht Stuttgart, HRB 243294 ------------------------------------------------------------------------- This SF.net email is sponsored by: Splunk Inc. Still grepping through log files to find problems? Stop. Now Search log events and configuration files using AJAX and a browser. Download your FREE copy of Splunk now >> http://get.splunk.com/