mirror of
https://github.com/reactos/reactos.git
synced 2025-02-24 17:34:57 +00:00
- Use NDIS_GET_PACKET_STATUS to get the real status for the packet
- Set MiniportBusy to FALSE if Send/SendPacket didn't return NDIS_STATUS_PENDING svn path=/branches/aicom-network-fixes/; revision=36250
This commit is contained in:
parent
e43328b916
commit
72d8191116
1 changed files with 5 additions and 7 deletions
|
@ -340,13 +340,10 @@ ProSend(
|
|||
KeLowerIrql(RaiseOldIrql);
|
||||
}
|
||||
|
||||
/* SendPackets handlers return void - they always "succeed" */
|
||||
NdisStatus = NDIS_STATUS_SUCCESS;
|
||||
NdisStatus = NDIS_GET_PACKET_STATUS((PNDIS_PACKET)Packet);
|
||||
}
|
||||
else
|
||||
{
|
||||
/* XXX FIXME THIS IS WRONG */
|
||||
/* uh oh... forgot why i thought that... */
|
||||
if(Adapter->NdisMiniportBlock.Flags & NDIS_ATTRIBUTE_DESERIALIZE)
|
||||
{
|
||||
NDIS_DbgPrint(MAX_TRACE, ("Calling miniport's Send handler\n"));
|
||||
|
@ -363,13 +360,14 @@ ProSend(
|
|||
NdisStatus = (*Adapter->NdisMiniportBlock.DriverHandle->MiniportCharacteristics.SendHandler)(
|
||||
Adapter->NdisMiniportBlock.MiniportAdapterContext, Packet, 0);
|
||||
NDIS_DbgPrint(MAX_TRACE, ("back from miniport's send handler\n"));
|
||||
if( NdisStatus != NDIS_STATUS_PENDING ) {
|
||||
Adapter->MiniportBusy = FALSE;
|
||||
}
|
||||
KeLowerIrql(RaiseOldIrql);
|
||||
}
|
||||
}
|
||||
|
||||
if( NdisStatus != NDIS_STATUS_PENDING ) {
|
||||
Adapter->MiniportBusy = FALSE;
|
||||
}
|
||||
|
||||
/* XXX why the hell do we do this? */
|
||||
NDIS_DbgPrint(MAX_TRACE, ("acquiring miniport block lock\n"));
|
||||
KeAcquireSpinLock(&Adapter->NdisMiniportBlock.Lock, &SpinOldIrql);
|
||||
|
|
Loading…
Reference in a new issue