- Set MiniportBusy to TRUE if a request is pending

- Hold spin lock when setting MiniportBusy (forgot one from last time)

svn path=/branches/aicom-network-fixes/; revision=36558
This commit is contained in:
Cameron Gutman 2008-09-27 19:54:58 +00:00
parent 63ed3d8b4f
commit 1d8b2f1556

View file

@ -817,6 +817,12 @@ MiniDoRequest(
Status = NDIS_STATUS_FAILURE;
}
if (Status == NDIS_STATUS_PENDING) {
KeAcquireSpinLockAtDpcLevel(&Adapter->NdisMiniportBlock.Lock);
Adapter->MiniportBusy = TRUE;
KeReleaseSpinLockFromDpcLevel(&Adapter->NdisMiniportBlock.Lock);
}
KeLowerIrql(OldIrql);
return Status;
}
@ -999,8 +1005,11 @@ VOID NTAPI MiniportWorker(IN PVOID WorkItem)
}
}
if( NdisStatus != NDIS_STATUS_PENDING )
Adapter->MiniportBusy = FALSE;
if( NdisStatus != NDIS_STATUS_PENDING ) {
KeAcquireSpinLock(&Adapter->NdisMiniportBlock.Lock, &OldIrql);
Adapter->MiniportBusy = FALSE;
KeReleaseSpinLock(&Adapter->NdisMiniportBlock.Lock, OldIrql);
}
ExFreePool(WorkItem);
}