win-pvdrivers

changeset 585:19b4c4d2b621

Flush the Dpc queue when unbinding a Dpc from an event channel
author James Harper <james.harper@bendigoit.com.au>
date Sun Jun 07 20:22:05 2009 +1000 (2009-06-07)
parents 40a40d4aa88a
children bdb2d6b163f3
files xenpci/evtchn.c
line diff
     1.1 --- a/xenpci/evtchn.c	Sun Jun 07 20:19:20 2009 +1000
     1.2 +++ b/xenpci/evtchn.c	Sun Jun 07 20:22:05 2009 +1000
     1.3 @@ -316,7 +316,10 @@ EvtChn_Unbind(PVOID Context, evtchn_port
     1.4    xpdd->ev_actions[Port].ServiceContext = NULL;
     1.5  
     1.6    if (old_type == EVT_ACTION_TYPE_DPC)
     1.7 +  {
     1.8      KeRemoveQueueDpc(&xpdd->ev_actions[Port].Dpc);
     1.9 +    KeFlushQueuedDpcs();
    1.10 +  }
    1.11    
    1.12    return STATUS_SUCCESS;
    1.13  }
    1.14 @@ -465,9 +468,7 @@ EvtChn_Suspend(PXENPCI_DEVICE_DATA xpdd)
    1.15        KeRemoveQueueDpc(&xpdd->ev_actions[i].Dpc);
    1.16      }
    1.17    }
    1.18 -#if (NTDDI_VERSION >= NTDDI_WINXP)
    1.19    KeFlushQueuedDpcs();
    1.20 -#endif
    1.21  
    1.22    return STATUS_SUCCESS;
    1.23  }