|
@@ -3930,7 +3930,7 @@ static int init_rmode_tss(struct kvm *kvm)
|
|
|
{
|
|
|
gfn_t fn;
|
|
|
u16 data = 0;
|
|
|
- int r, idx, ret = 0;
|
|
|
+ int idx, r;
|
|
|
|
|
|
idx = srcu_read_lock(&kvm->srcu);
|
|
|
fn = kvm->arch.tss_addr >> PAGE_SHIFT;
|
|
@@ -3952,13 +3952,9 @@ static int init_rmode_tss(struct kvm *kvm)
|
|
|
r = kvm_write_guest_page(kvm, fn, &data,
|
|
|
RMODE_TSS_SIZE - 2 * PAGE_SIZE - 1,
|
|
|
sizeof(u8));
|
|
|
- if (r < 0)
|
|
|
- goto out;
|
|
|
-
|
|
|
- ret = 1;
|
|
|
out:
|
|
|
srcu_read_unlock(&kvm->srcu, idx);
|
|
|
- return ret;
|
|
|
+ return r;
|
|
|
}
|
|
|
|
|
|
static int init_rmode_identity_map(struct kvm *kvm)
|
|
@@ -4751,10 +4747,7 @@ static int vmx_set_tss_addr(struct kvm *kvm, unsigned int addr)
|
|
|
if (ret)
|
|
|
return ret;
|
|
|
kvm->arch.tss_addr = addr;
|
|
|
- if (!init_rmode_tss(kvm))
|
|
|
- return -ENOMEM;
|
|
|
-
|
|
|
- return 0;
|
|
|
+ return init_rmode_tss(kvm);
|
|
|
}
|
|
|
|
|
|
static bool rmode_exception(struct kvm_vcpu *vcpu, int vec)
|