mirror of
https://github.com/reactos/reactos.git
synced 2025-02-24 17:34:57 +00:00
- Set MiniportBusy to TRUE in MiniDequeueWorkItem instead of MiniQueueWorkItem
- Fail if another miniport request is still in progress svn path=/branches/aicom-network-fixes/; revision=36363
This commit is contained in:
parent
e6386dff73
commit
252f7c71da
1 changed files with 11 additions and 2 deletions
|
@ -634,8 +634,6 @@ MiniQueueWorkItem(
|
|||
|
||||
KeInsertQueueDpc(&Adapter->NdisMiniportBlock.DeferredDpc, NULL, NULL);
|
||||
|
||||
Adapter->MiniportBusy = TRUE;
|
||||
|
||||
return NDIS_STATUS_SUCCESS;
|
||||
}
|
||||
|
||||
|
@ -663,6 +661,12 @@ MiniDequeueWorkItem(
|
|||
|
||||
NDIS_DbgPrint(MAX_TRACE, ("Called.\n"));
|
||||
|
||||
if (Adapter->MiniportBusy) {
|
||||
NDIS_DbgPrint(MID_TRACE, ("Waiting for miniport to become free.\n"));
|
||||
KeInsertQueueDpc(&Adapter->NdisMiniportBlock.DeferredDpc, NULL, NULL);
|
||||
return NDIS_STATUS_FAILURE;
|
||||
}
|
||||
|
||||
Item = Adapter->WorkQueueHead;
|
||||
|
||||
if (Item)
|
||||
|
@ -678,6 +682,8 @@ MiniDequeueWorkItem(
|
|||
|
||||
ExFreePool(Item);
|
||||
|
||||
Adapter->MiniportBusy = TRUE;
|
||||
|
||||
return NDIS_STATUS_SUCCESS;
|
||||
}
|
||||
|
||||
|
@ -900,6 +906,9 @@ VOID NTAPI MiniportWorker(IN PVOID WorkItem)
|
|||
}
|
||||
}
|
||||
|
||||
if( NdisStatus != NDIS_STATUS_PENDING )
|
||||
Adapter->MiniportBusy = FALSE;
|
||||
|
||||
ExFreePool(WorkItem);
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in a new issue