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

Re: [win-pv-devel] [PATCH 10/10] Only call EVTCHN:Open for rx and tx or single event channel, based on "feature-split-event-channels"



> -----Original Message-----
> From: Owen Smith [mailto:owen.smith@xxxxxxxxxx]
> Sent: 12 November 2014 16:39
> To: win-pv-devel@xxxxxxxxxxxxxxxxxxxx
> Cc: Paul Durrant; Owen Smith
> Subject: [PATCH 10/10] Only call EVTCHN:Open for rx and tx or single event
> channel, based on "feature-split-event-channels"
> 
> Signed-off-by: Owen Smith <owen.smith@xxxxxxxxxx>

As mentioned before, Notifier object should go.

  Paul

> ---
>  src/xenvif/notifier.c | 25 +++++++++++++++++++++++++
>  1 file changed, 25 insertions(+)
> 
> diff --git a/src/xenvif/notifier.c b/src/xenvif/notifier.c
> index 93f2395..e9972d2 100644
> --- a/src/xenvif/notifier.c
> +++ b/src/xenvif/notifier.c
> @@ -295,6 +295,27 @@ NotifierQueueConnect(
>          PKSERVICE_ROUTINE   Callback = NotifierQueueEvtchnCallback[Index];
>          BOOLEAN             Pending;
> 
> +        switch (Index) {
> +        case XENVIF_NOTIFIER_EVTCHN_COMBINED:
> +            if (Notifier->Split)
> +                continue;
> +            break;
> +
> +        case XENVIF_NOTIFIER_EVTCHN_RX:
> +            if (!Notifier->Split)
> +                continue;
> +            break;
> +
> +        case XENVIF_NOTIFIER_EVTCHN_TX:
> +            if (!Notifier->Split)
> +                continue;
> +            break;
> +
> +        default:
> +            ASSERT(FALSE);
> +            break;
> +        }
> +
>          if (FrontendGetQueueCount(Frontend) > 1) {
>              KeSetTargetProcessorDpc(&Queue->Dpc[Index],
>                                      (CCHAR)Queue->Index);
> @@ -328,6 +349,9 @@ fail1:
>      Error("fail1 (%08x)\n", status);
> 
>      while (--Index >= 0) {
> +        if (Queue->Channel[Index] == NULL)
> +            continue;
> +
>          XENBUS_EVTCHN(Close,
>                        &Notifier->EvtchnInterface,
>                        Queue->Channel[Index]);
> @@ -384,6 +408,7 @@ NotifierQueueStoreWrite(
>              break;
>          }
> 
> +        ASSERT(Queue->Channel[Index] != NULL);
>          Port = XENBUS_EVTCHN(GetPort,
>                               &Notifier->EvtchnInterface,
>                               Queue->Channel[Index]);
> --
> 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


 


Rackspace

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