netkvm: ignore CFlowStateMachine::Stop in wrong state
NETKVM_ASSERT is not implemented in release version.
Pause flow can come after out-of-order reset flow or
vice versa. There is no such functional flow but this
happens in erroneous NDIS flow on 2012r2 with incorrect
driver verifier setting.
See
@@ -28,7 +28,10 @@ public:
virtual void Stop(NDIS_STATUS Reason = NDIS_STATUS_PAUSED)
{
- NETKVM_ASSERT(m_State == FlowState::Running);
+ if (m_State != FlowState::Running)
+ {
+ return;
+ }
m_State = FlowState::Stopping;
m_StopReason = Reason;
m_NoOutstandingItems.Clear();
