KVM: get_tss_base_addr() should return a gpa_t

If TSS we are switching to resides in high memory task switch will fail
since address will be truncated. Windows2k3 does this sometimes when
running with more then 4G

Cc: stable@kernel.org
Signed-off-by: Gleb Natapov <gleb@redhat.com>
Signed-off-by: Avi Kivity <avi@redhat.com>
This commit is contained in:
Gleb Natapov 2009-10-25 17:42:02 +02:00 коммит произвёл Marcelo Tosatti
Родитель a9e38c3e01
Коммит abb3911965
1 изменённых файлов: 1 добавлений и 1 удалений

Просмотреть файл

@ -4051,7 +4051,7 @@ static int save_guest_segment_descriptor(struct kvm_vcpu *vcpu, u16 selector,
return kvm_write_guest_virt(dtable.base + index*8, seg_desc, sizeof(*seg_desc), vcpu); return kvm_write_guest_virt(dtable.base + index*8, seg_desc, sizeof(*seg_desc), vcpu);
} }
static u32 get_tss_base_addr(struct kvm_vcpu *vcpu, static gpa_t get_tss_base_addr(struct kvm_vcpu *vcpu,
struct desc_struct *seg_desc) struct desc_struct *seg_desc)
{ {
u32 base_addr = get_desc_base(seg_desc); u32 base_addr = get_desc_base(seg_desc);