mirror of
https://github.com/ApfelTeeSaft/reactos.git
synced 2026-09-03 04:13:31 +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:
@@ -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);
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user