Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 186077
b: refs/heads/master
c: 6f55048
h: refs/heads/master
i:
  186075: f1d73cb
v: v3
  • Loading branch information
Takuya Yoshikawa authored and Marcelo Tosatti committed Mar 1, 2010
1 parent 67299de commit 2e4f537
Show file tree
Hide file tree
Showing 2 changed files with 11 additions and 4 deletions.
2 changes: 1 addition & 1 deletion [refs]
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
---
refs/heads/master: 8b9f44140bc4afd2698413cd9960c3912168ee91
refs/heads/master: 6f550484a15ea1b468665cdf59f020bf08ccb292
13 changes: 10 additions & 3 deletions trunk/arch/x86/kvm/x86.c
Original file line number Diff line number Diff line change
Expand Up @@ -4713,16 +4713,23 @@ static int load_guest_segment_descriptor(struct kvm_vcpu *vcpu, u16 selector,
{
struct descriptor_table dtable;
u16 index = selector >> 3;
int ret;
u32 err;
gva_t addr;

get_segment_descriptor_dtable(vcpu, selector, &dtable);

if (dtable.limit < index * 8 + 7) {
kvm_queue_exception_e(vcpu, GP_VECTOR, selector & 0xfffc);
return X86EMUL_PROPAGATE_FAULT;
}
return kvm_read_guest_virt_system(dtable.base + index*8,
seg_desc, sizeof(*seg_desc),
vcpu, NULL);
addr = dtable.base + index * 8;
ret = kvm_read_guest_virt_system(addr, seg_desc, sizeof(*seg_desc),
vcpu, &err);
if (ret == X86EMUL_PROPAGATE_FAULT)
kvm_inject_page_fault(vcpu, addr, err);

return ret;
}

/* allowed just for 8 bytes segments */
Expand Down

0 comments on commit 2e4f537

Please sign in to comment.