|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [PATCH for-4.7 2/4] x86/hvm: Raise #SS faults for %ss-based segmentation violations
On 09/05/16 14:15, Andrew Cooper wrote:
> Raising #GP under such circumstances is architecturally wrong.
You should include a reference to the relevant Intel and AMD manuals here.
David
> ---
> CC: Jan Beulich <JBeulich@xxxxxxxx>
> CC: Tim Deegan <tim@xxxxxxx>
> CC: Paul Durrant <paul.durrant@xxxxxxxxxx>
> CC: Wei Liu <wei.liu2@xxxxxxxxxx>
> ---
> xen/arch/x86/hvm/emulate.c | 3 ++-
> xen/arch/x86/mm/shadow/common.c | 3 ++-
> 2 files changed, 4 insertions(+), 2 deletions(-)
>
> diff --git a/xen/arch/x86/hvm/emulate.c b/xen/arch/x86/hvm/emulate.c
> index be1e7c2..ee5cf1f 100644
> --- a/xen/arch/x86/hvm/emulate.c
> +++ b/xen/arch/x86/hvm/emulate.c
> @@ -566,7 +566,8 @@ static int hvmemul_virtual_to_linear(
>
> /* This is a singleton operation: fail it with an exception. */
> hvmemul_ctxt->exn_pending = 1;
> - hvmemul_ctxt->trap.vector = TRAP_gp_fault;
> + hvmemul_ctxt->trap.vector =
> + (seg == x86_seg_ss) ? TRAP_stack_error : TRAP_gp_fault;
> hvmemul_ctxt->trap.type = X86_EVENTTYPE_HW_EXCEPTION;
> hvmemul_ctxt->trap.error_code = 0;
> hvmemul_ctxt->trap.insn_len = 0;
> diff --git a/xen/arch/x86/mm/shadow/common.c b/xen/arch/x86/mm/shadow/common.c
> index 559d4a4..226e32d 100644
> --- a/xen/arch/x86/mm/shadow/common.c
> +++ b/xen/arch/x86/mm/shadow/common.c
> @@ -148,7 +148,8 @@ static int hvm_translate_linear_addr(
>
> if ( !okay )
> {
> - hvm_inject_hw_exception(TRAP_gp_fault, 0);
> + hvm_inject_hw_exception(
> + (seg == x86_seg_ss) ? TRAP_stack_error : TRAP_gp_fault, 0);
> return X86EMUL_EXCEPTION;
> }
>
>
_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxx
http://lists.xen.org/xen-devel
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |