Re: [PATCH v2] KVM: fix load_guest_segment_descriptor() to return X86EMUL_*

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Tue, Feb 02, 2010 at 09:49:35PM +0900, Takuya Yoshikawa wrote:
> A bit more explanation,
> 
> Takuya Yoshikawa wrote:
> >This patch fixes load_guest_segment_descriptor() to return
> >X86EMUL_PROPAGATE_FAULT when it tries to access the descriptor
> >table beyond the limit of it: suggested by Marcelo.
> >
> >I have checked current callers of this helper function,
> >  - kvm_load_segment_descriptor()
> >  - kvm_task_switch()
> >and confirmed that this patch will change nothing in the
> >upper layers if we do not change the handling of this
> >return value from load_guest_segment_descriptor().
> >
> >Next step: Although fixing the kvm_task_switch() to handle the
> >propagated faults properly seems difficult, and maybe not worth
> >it because TSS is not used commonly these days, we can fix
> >kvm_load_segment_descriptor(). By doing so, the injected #GP
> >becomes possible to be handled by the guest. The only problem
> >for this is how to differentiate this fault from the page faults
> >generated by kvm_read_guest_virt(). We may have to split this
> >function to achive this goal.
> >
> 
> My concern is we may have to inject different types of
> faults/exceptions depending on callers when kvm_read_guest_virt()
> returns X86EMUL_PROPAGATE_FAULT. Actually if always injecting
> page faults in the load_guest_segment_descriptor() right after
> kvm_read_guest_virt() is OK, we do not have any problems.
> 
> Personally I think we'd better to inject page faults for
> kvm_load_segment_descriptor().
> 
> Is it right?

Yes, if kvm_read_guest_virt fails, inject page fault.

Applied patch, thanks.

--
To unsubscribe from this list: send the line "unsubscribe kvm" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html

[Index of Archives]     [KVM ARM]     [KVM ia64]     [KVM ppc]     [Virtualization Tools]     [Spice Development]     [Libvirt]     [Libvirt Users]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite Questions]     [Linux Kernel]     [Linux SCSI]     [XFree86]
  Powered by Linux