diff options
Diffstat (limited to 'arch/x86/kvm/svm.c')
| -rw-r--r-- | arch/x86/kvm/svm.c | 64 | 
1 files changed, 31 insertions, 33 deletions
diff --git a/arch/x86/kvm/svm.c b/arch/x86/kvm/svm.c index 3de0b37ec03..1d9b33843c8 100644 --- a/arch/x86/kvm/svm.c +++ b/arch/x86/kvm/svm.c @@ -316,7 +316,7 @@ static void svm_hardware_disable(void *garbage)  static int svm_hardware_enable(void *garbage)  { -	struct svm_cpu_data *svm_data; +	struct svm_cpu_data *sd;  	uint64_t efer;  	struct descriptor_table gdt_descr;  	struct desc_struct *gdt; @@ -331,63 +331,61 @@ static int svm_hardware_enable(void *garbage)  		       me);  		return -EINVAL;  	} -	svm_data = per_cpu(svm_data, me); +	sd = per_cpu(svm_data, me); -	if (!svm_data) { +	if (!sd) {  		printk(KERN_ERR "svm_hardware_enable: svm_data is NULL on %d\n",  		       me);  		return -EINVAL;  	} -	svm_data->asid_generation = 1; -	svm_data->max_asid = cpuid_ebx(SVM_CPUID_FUNC) - 1; -	svm_data->next_asid = svm_data->max_asid + 1; +	sd->asid_generation = 1; +	sd->max_asid = cpuid_ebx(SVM_CPUID_FUNC) - 1; +	sd->next_asid = sd->max_asid + 1;  	kvm_get_gdt(&gdt_descr);  	gdt = (struct desc_struct *)gdt_descr.base; -	svm_data->tss_desc = (struct kvm_ldttss_desc *)(gdt + GDT_ENTRY_TSS); +	sd->tss_desc = (struct kvm_ldttss_desc *)(gdt + GDT_ENTRY_TSS);  	wrmsrl(MSR_EFER, efer | EFER_SVME); -	wrmsrl(MSR_VM_HSAVE_PA, -	       page_to_pfn(svm_data->save_area) << PAGE_SHIFT); +	wrmsrl(MSR_VM_HSAVE_PA, page_to_pfn(sd->save_area) << PAGE_SHIFT);  	return 0;  }  static void svm_cpu_uninit(int cpu)  { -	struct svm_cpu_data *svm_data -		= per_cpu(svm_data, raw_smp_processor_id()); +	struct svm_cpu_data *sd = per_cpu(svm_data, raw_smp_processor_id()); -	if (!svm_data) +	if (!sd)  		return;  	per_cpu(svm_data, raw_smp_processor_id()) = NULL; -	__free_page(svm_data->save_area); -	kfree(svm_data); +	__free_page(sd->save_area); +	kfree(sd);  }  static int svm_cpu_init(int cpu)  { -	struct svm_cpu_data *svm_data; +	struct svm_cpu_data *sd;  	int r; -	svm_data = kzalloc(sizeof(struct svm_cpu_data), GFP_KERNEL); -	if (!svm_data) +	sd = kzalloc(sizeof(struct svm_cpu_data), GFP_KERNEL); +	if (!sd)  		return -ENOMEM; -	svm_data->cpu = cpu; -	svm_data->save_area = alloc_page(GFP_KERNEL); +	sd->cpu = cpu; +	sd->save_area = alloc_page(GFP_KERNEL);  	r = -ENOMEM; -	if (!svm_data->save_area) +	if (!sd->save_area)  		goto err_1; -	per_cpu(svm_data, cpu) = svm_data; +	per_cpu(svm_data, cpu) = sd;  	return 0;  err_1: -	kfree(svm_data); +	kfree(sd);  	return r;  } @@ -1092,16 +1090,16 @@ static void save_host_msrs(struct kvm_vcpu *vcpu)  #endif  } -static void new_asid(struct vcpu_svm *svm, struct svm_cpu_data *svm_data) +static void new_asid(struct vcpu_svm *svm, struct svm_cpu_data *sd)  { -	if (svm_data->next_asid > svm_data->max_asid) { -		++svm_data->asid_generation; -		svm_data->next_asid = 1; +	if (sd->next_asid > sd->max_asid) { +		++sd->asid_generation; +		sd->next_asid = 1;  		svm->vmcb->control.tlb_ctl = TLB_CONTROL_FLUSH_ALL_ASID;  	} -	svm->asid_generation = svm_data->asid_generation; -	svm->vmcb->control.asid = svm_data->next_asid++; +	svm->asid_generation = sd->asid_generation; +	svm->vmcb->control.asid = sd->next_asid++;  }  static unsigned long svm_get_dr(struct kvm_vcpu *vcpu, int dr) @@ -2429,8 +2427,8 @@ static void reload_tss(struct kvm_vcpu *vcpu)  {  	int cpu = raw_smp_processor_id(); -	struct svm_cpu_data *svm_data = per_cpu(svm_data, cpu); -	svm_data->tss_desc->type = 9; /* available 32/64-bit TSS */ +	struct svm_cpu_data *sd = per_cpu(svm_data, cpu); +	sd->tss_desc->type = 9; /* available 32/64-bit TSS */  	load_TR_desc();  } @@ -2438,12 +2436,12 @@ static void pre_svm_run(struct vcpu_svm *svm)  {  	int cpu = raw_smp_processor_id(); -	struct svm_cpu_data *svm_data = per_cpu(svm_data, cpu); +	struct svm_cpu_data *sd = per_cpu(svm_data, cpu);  	svm->vmcb->control.tlb_ctl = TLB_CONTROL_DO_NOTHING;  	/* FIXME: handle wraparound of asid_generation */ -	if (svm->asid_generation != svm_data->asid_generation) -		new_asid(svm, svm_data); +	if (svm->asid_generation != sd->asid_generation) +		new_asid(svm, sd);  }  static void svm_inject_nmi(struct kvm_vcpu *vcpu)  |