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

Re: [Xen-devel] [PATCH v7 for-next 01/12] x86/pio: allow internal PIO handlers to return RETRY



> -----Original Message-----
> From: Roger Pau Monne [mailto:roger.pau@xxxxxxxxxx]
> Sent: 18 October 2017 12:40
> To: xen-devel@xxxxxxxxxxxxxxxxxxxx
> Cc: konrad.wilk@xxxxxxxxxx; boris.ostrovsky@xxxxxxxxxx; Roger Pau Monne
> <roger.pau@xxxxxxxxxx>; Paul Durrant <Paul.Durrant@xxxxxxxxxx>; Jan
> Beulich <jbeulich@xxxxxxxx>; Andrew Cooper
> <Andrew.Cooper3@xxxxxxxxxx>
> Subject: [PATCH v7 for-next 01/12] x86/pio: allow internal PIO handlers to
> return RETRY
> 
> Fix handle_pio so internal PIO handlers can return X86EMUL_RETRY and
> it is properly handled by not advancing the IP.
> 
> Signed-off-by: Roger Pau Monné <roger.pau@xxxxxxxxxx>

I *think* this is safe.

Reviewed-by: Paul Durrant <paul.durrant@xxxxxxxxxx>

> ---
> Cc: Paul Durrant <paul.durrant@xxxxxxxxxx>
> Cc: Jan Beulich <jbeulich@xxxxxxxx>
> Cc: Andrew Cooper <andrew.cooper3@xxxxxxxxxx>
> ---
> Note this is not an issue currently because no internal handlers
> return RETRY.
> ---
>  xen/arch/x86/hvm/io.c | 7 +++++--
>  1 file changed, 5 insertions(+), 2 deletions(-)
> 
> diff --git a/xen/arch/x86/hvm/io.c b/xen/arch/x86/hvm/io.c
> index e449b4196e..10e1e2db45 100644
> --- a/xen/arch/x86/hvm/io.c
> +++ b/xen/arch/x86/hvm/io.c
> @@ -157,8 +157,11 @@ bool handle_pio(uint16_t port, unsigned int size, int
> dir)
>          break;
> 
>      case X86EMUL_RETRY:
> -        /* We should not advance RIP/EIP if the domain is shutting down */
> -        if ( curr->domain->is_shutting_down )
> +        /*
> +         * We should not advance RIP/EIP if the domain is shutting down or
> +         * if X86EMUL_RETRY has been returned by an internal handler.
> +         */
> +        if ( curr->domain->is_shutting_down || !hvm_io_pending(curr) )
>              return false;
>          break;
> 
> --
> 2.13.5 (Apple Git-94)

_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxx
https://lists.xen.org/xen-devel

 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.