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

Re: [win-pv-devel] [PATCH] Use correct location when multi-queues are not used.



> -----Original Message-----
> From: win-pv-devel-bounces@xxxxxxxxxxxxxxxxxxxx [mailto:win-pv-devel-
> bounces@xxxxxxxxxxxxxxxxxxxx] On Behalf Of Owen Smith
> Sent: 19 January 2015 16:24
> To: win-pv-devel@xxxxxxxxxxxxxxxxxxxx
> Cc: Owen Smith
> Subject: [win-pv-devel] [PATCH] Use correct location when multi-queues are
> not used.
> 
> When the backend does not support multi-queues, or the frontend has
> explicitly disallowed multi-queues, the frontend needs to write
> event-channel and ring-references to the non-queued (old) locations,
> not under device/vif/<id>/queue-<index>
> 
> Signed-off-by: Owen Smith <owen.smith@xxxxxxxxxx>

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

> ---
>  src/xenvif/frontend.c    | 3 ---
>  src/xenvif/receiver.c    | 9 +++++++--
>  src/xenvif/transmitter.c | 9 +++++++--
>  3 files changed, 14 insertions(+), 7 deletions(-)
> 
> diff --git a/src/xenvif/frontend.c b/src/xenvif/frontend.c
> index d2643fc..12b6287 100644
> --- a/src/xenvif/frontend.c
> +++ b/src/xenvif/frontend.c
> @@ -237,9 +237,6 @@ FrontendFormatPath(
>      PCHAR                   Path;
>      NTSTATUS                status;
> 
> -    if (__FrontendGetQueueCount(Frontend) == 1)
> -        return __FrontendGetPath(Frontend);
> -
>      Length = (ULONG)(strlen(__FrontendGetPath(Frontend)) +
>                       strlen("/queue-00") +
>                       1) * sizeof (CHAR);
> diff --git a/src/xenvif/receiver.c b/src/xenvif/receiver.c
> index 8856bca..a53a03f 100644
> --- a/src/xenvif/receiver.c
> +++ b/src/xenvif/receiver.c
> @@ -2291,15 +2291,20 @@ __ReceiverRingStoreWrite(
>      PXENVIF_RECEIVER                Receiver;
>      PXENVIF_FRONTEND                Frontend;
>      ULONG                           Port;
> +    PCHAR                           Path;
>      NTSTATUS                        status;
> 
>      Receiver = Ring->Receiver;
>      Frontend = Receiver->Frontend;
> 
> +    Path = (FrontendGetQueueCount(Frontend) == 1 && Ring->Index == 0) ?
> +                    FrontendGetPath(Frontend) :
> +                    Ring->Path;
> +
>      status = XENBUS_STORE(Printf,
>                            &Receiver->StoreInterface,
>                            Transaction,
> -                          Ring->Path,
> +                          Path,
>                            "rx-ring-ref",
>                            "%u",
>                            GranterGetReference(FrontendGetGranter(Frontend),
> @@ -2315,7 +2320,7 @@ __ReceiverRingStoreWrite(
>      status = XENBUS_STORE(Printf,
>                            &Receiver->StoreInterface,
>                            Transaction,
> -                          Ring->Path,
> +                          Path,
>                            Receiver->Split ? "event-channel-rx" : 
> "event-channel",
>                            "%u",
>                            Port);
> diff --git a/src/xenvif/transmitter.c b/src/xenvif/transmitter.c
> index 24fd6a5..aa55f1c 100644
> --- a/src/xenvif/transmitter.c
> +++ b/src/xenvif/transmitter.c
> @@ -3127,15 +3127,20 @@ __TransmitterRingStoreWrite(
>      PXENVIF_TRANSMITTER             Transmitter;
>      PXENVIF_FRONTEND                Frontend;
>      ULONG                           Port;
> +    PCHAR                           Path;
>      NTSTATUS                        status;
> 
>      Transmitter = Ring->Transmitter;
>      Frontend = Transmitter->Frontend;
> 
> +    Path = (FrontendGetQueueCount(Frontend) == 1 && Ring->Index == 0) ?
> +                    FrontendGetPath(Frontend) :
> +                    Ring->Path;
> +
>      status = XENBUS_STORE(Printf,
>                            &Transmitter->StoreInterface,
>                            Transaction,
> -                          Ring->Path,
> +                          Path,
>                            "tx-ring-ref",
>                            "%u",
>                            GranterGetReference(FrontendGetGranter(Frontend),
> @@ -3154,7 +3159,7 @@ __TransmitterRingStoreWrite(
>      status = XENBUS_STORE(Printf,
>                            &Transmitter->StoreInterface,
>                            Transaction,
> -                          Ring->Path,
> +                          Path,
>                            "event-channel-tx",
>                            "%u",
>                            Port);
> --
> 1.9.4.msysgit.1
> 
> 
> _______________________________________________
> win-pv-devel mailing list
> win-pv-devel@xxxxxxxxxxxxxxxxxxxx
> http://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel

_______________________________________________
win-pv-devel mailing list
win-pv-devel@xxxxxxxxxxxxxxxxxxxx
http://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel


 


Rackspace

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