Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 0ee6a517 authored by Ingo Molnar's avatar Ingo Molnar
Browse files

x86/fpu, kvm: Simplify fx_init()



Now that fpstate_init() cannot fail the error return of fx_init()
has lost its purpose. Eliminate the error return and propagate this
change to all callers.

Reviewed-by: default avatarBorislav Petkov <bp@alien8.de>
Cc: Andy Lutomirski <luto@amacapital.net>
Cc: Dave Hansen <dave.hansen@linux.intel.com>
Cc: Fenghua Yu <fenghua.yu@intel.com>
Cc: H. Peter Anvin <hpa@zytor.com>
Cc: Linus Torvalds <torvalds@linux-foundation.org>
Cc: Oleg Nesterov <oleg@redhat.com>
Cc: Peter Zijlstra <peterz@infradead.org>
Cc: Thomas Gleixner <tglx@linutronix.de>
Signed-off-by: default avatarIngo Molnar <mingo@kernel.org>
parent 2fb29fc7
Loading
Loading
Loading
Loading
+0 −2
Original line number Original line Diff line number Diff line
@@ -999,8 +999,6 @@ void kvm_pic_clear_all(struct kvm_pic *pic, int irq_source_id);


void kvm_inject_nmi(struct kvm_vcpu *vcpu);
void kvm_inject_nmi(struct kvm_vcpu *vcpu);


int fx_init(struct kvm_vcpu *vcpu);

void kvm_mmu_pte_write(struct kvm_vcpu *vcpu, gpa_t gpa,
void kvm_mmu_pte_write(struct kvm_vcpu *vcpu, gpa_t gpa,
		       const u8 *new, int bytes);
		       const u8 *new, int bytes);
int kvm_mmu_unprotect_page(struct kvm *kvm, gfn_t gfn);
int kvm_mmu_unprotect_page(struct kvm *kvm, gfn_t gfn);
+3 −11
Original line number Original line Diff line number Diff line
@@ -7004,10 +7004,8 @@ int kvm_arch_vcpu_ioctl_set_fpu(struct kvm_vcpu *vcpu, struct kvm_fpu *fpu)
	return 0;
	return 0;
}
}


int fx_init(struct kvm_vcpu *vcpu)
static void fx_init(struct kvm_vcpu *vcpu)
{
{
	int err;

	fpstate_init(&vcpu->arch.guest_fpu);
	fpstate_init(&vcpu->arch.guest_fpu);
	if (cpu_has_xsaves)
	if (cpu_has_xsaves)
		vcpu->arch.guest_fpu.state.xsave.header.xcomp_bv =
		vcpu->arch.guest_fpu.state.xsave.header.xcomp_bv =
@@ -7019,10 +7017,7 @@ int fx_init(struct kvm_vcpu *vcpu)
	vcpu->arch.xcr0 = XSTATE_FP;
	vcpu->arch.xcr0 = XSTATE_FP;


	vcpu->arch.cr0 |= X86_CR0_ET;
	vcpu->arch.cr0 |= X86_CR0_ET;

	return 0;
}
}
EXPORT_SYMBOL_GPL(fx_init);


void kvm_load_guest_fpu(struct kvm_vcpu *vcpu)
void kvm_load_guest_fpu(struct kvm_vcpu *vcpu)
{
{
@@ -7341,9 +7336,7 @@ int kvm_arch_vcpu_init(struct kvm_vcpu *vcpu)
		goto fail_free_mce_banks;
		goto fail_free_mce_banks;
	}
	}


	r = fx_init(vcpu);
	fx_init(vcpu);
	if (r)
		goto fail_free_wbinvd_dirty_mask;


	vcpu->arch.ia32_tsc_adjust_msr = 0x0;
	vcpu->arch.ia32_tsc_adjust_msr = 0x0;
	vcpu->arch.pv_time_enabled = false;
	vcpu->arch.pv_time_enabled = false;
@@ -7357,8 +7350,7 @@ int kvm_arch_vcpu_init(struct kvm_vcpu *vcpu)
	kvm_pmu_init(vcpu);
	kvm_pmu_init(vcpu);


	return 0;
	return 0;
fail_free_wbinvd_dirty_mask:

	free_cpumask_var(vcpu->arch.wbinvd_dirty_mask);
fail_free_mce_banks:
fail_free_mce_banks:
	kfree(vcpu->arch.mce_banks);
	kfree(vcpu->arch.mce_banks);
fail_free_lapic:
fail_free_lapic: