On 17/02/16 16:35, Jan Beulich wrote: > All branches need to #GP when their target violates the segment limit > (in 16- and 32-bit modes) or is non-canonical (in 64-bit mode). For > near branches facilitate this via a zero-byte instruction fetch from > the target address (resulting in address translation and validation > without an actual read from memory), while far branches get dealt with > by breaking up the segment register loading into a read-and-validate > part and a write one. The latter at once allows correcting some > ordering issues in how the individual emulation steps get carried out: > Before updating machine state, all exceptions unrelated to that state > updating should have got raised (i.e. the only ones possibly resulting > in partly updated state are faulting memory writes [pushes]). > > Note that while not immediately needed here, write and distinct read > emulation routines get updated to deal with zero byte accesses too, for > overall consistency. > > Reported-by: 刘令 <liuling...@360.cn> > Signed-off-by: Jan Beulich <jbeul...@suse.com>
Reviewed-by: Andrew Cooper <andrew.coop...@citrix.com> _______________________________________________ Xen-devel mailing list Xen-devel@lists.xen.org http://lists.xen.org/xen-devel