- Don't attempt to store packets and buffers in the same place

svn path=/trunk/; revision=40643
This commit is contained in:
Cameron Gutman 2009-04-22 03:27:33 +00:00
parent 6964f7b809
commit c218692561
3 changed files with 11 additions and 11 deletions

View file

@ -420,7 +420,7 @@ NdisAllocatePacket(
if (Pool->FreeList) {
Temp = Pool->FreeList;
Pool->FreeList = (PNDIS_PACKET)Temp->Private.Head;
Pool->FreeList = (PNDIS_PACKET)Temp->Reserved[0];
KeReleaseSpinLock(&Pool->SpinLock.SpinLock, OldIrql);
@ -521,11 +521,11 @@ NdisAllocatePacketPoolEx(
NextPacket = (PNDIS_PACKET)((ULONG_PTR)Packet + Length);
for (i = 1; i < NumberOfDescriptors; i++)
{
Packet->Private.Head = (PNDIS_BUFFER)NextPacket;
Packet->Reserved[0] = (ULONG_PTR)NextPacket;
Packet = NextPacket;
NextPacket = (PNDIS_PACKET)((ULONG_PTR)Packet + Length);
}
Packet->Private.Head = NULL;
Packet->Reserved[0] = 0;
}
else
Pool->FreeList = NULL;
@ -701,7 +701,7 @@ NdisDprAllocatePacket(
if (Pool->FreeList) {
Temp = Pool->FreeList;
Pool->FreeList = (PNDIS_PACKET)Temp->Private.Head;
Pool->FreeList = (PNDIS_PACKET)Temp->Reserved[0];
KeReleaseSpinLockFromDpcLevel(&Pool->SpinLock.SpinLock);
@ -750,7 +750,7 @@ NdisDprAllocatePacketNonInterlocked(
if (Pool->FreeList) {
Temp = Pool->FreeList;
Pool->FreeList = (PNDIS_PACKET)Temp->Private.Head;
Pool->FreeList = (PNDIS_PACKET)Temp->Reserved[0];
RtlZeroMemory(&Temp->Private, sizeof(NDIS_PACKET_PRIVATE));
Temp->Private.Pool = Pool;
@ -779,7 +779,7 @@ NdisDprFreePacket(
NDIS_DbgPrint(MAX_TRACE, ("Packet (0x%X).\n", Packet));
KeAcquireSpinLockAtDpcLevel(&((NDISI_PACKET_POOL*)Packet->Private.Pool)->SpinLock.SpinLock);
Packet->Private.Head = (PNDIS_BUFFER)((NDISI_PACKET_POOL*)Packet->Private.Pool)->FreeList;
Packet->Reserved[0] = (ULONG_PTR)((NDISI_PACKET_POOL*)Packet->Private.Pool)->FreeList;
((NDISI_PACKET_POOL*)Packet->Private.Pool)->FreeList = Packet;
KeReleaseSpinLockFromDpcLevel(&((NDISI_PACKET_POOL*)Packet->Private.Pool)->SpinLock.SpinLock);
}
@ -800,7 +800,7 @@ NdisDprFreePacketNonInterlocked(
{
NDIS_DbgPrint(MAX_TRACE, ("Packet (0x%X).\n", Packet));
Packet->Private.Head = (PNDIS_BUFFER)((NDISI_PACKET_POOL*)Packet->Private.Pool)->FreeList;
Packet->Reserved[0] = (ULONG_PTR)((NDISI_PACKET_POOL*)Packet->Private.Pool)->FreeList;
((NDISI_PACKET_POOL*)Packet->Private.Pool)->FreeList = Packet;
}
@ -874,7 +874,7 @@ NdisFreePacket(
NDIS_DbgPrint(MAX_TRACE, ("Packet (0x%X).\n", Packet));
KeAcquireSpinLock(&((NDISI_PACKET_POOL*)Packet->Private.Pool)->SpinLock.SpinLock, &OldIrql);
Packet->Private.Head = (PNDIS_BUFFER)((NDISI_PACKET_POOL*)Packet->Private.Pool)->FreeList;
Packet->Reserved[0] = (ULONG_PTR)((NDISI_PACKET_POOL*)Packet->Private.Pool)->FreeList;
((NDISI_PACKET_POOL*)Packet->Private.Pool)->FreeList = Packet;
KeReleaseSpinLock(&((NDISI_PACKET_POOL*)Packet->Private.Pool)->SpinLock.SpinLock, OldIrql);
}

View file

@ -457,7 +457,7 @@ MiniSendComplete(
NDIS_DbgPrint(DEBUG_MINIPORT, ("Called.\n"));
AdapterBinding = (PADAPTER_BINDING)Packet->Reserved[0];
AdapterBinding = (PADAPTER_BINDING)Packet->Reserved[1];
KeRaiseIrql(DISPATCH_LEVEL, &OldIrql);
(*AdapterBinding->ProtocolBinding->Chars.SendCompleteHandler)(
@ -490,7 +490,7 @@ MiniTransferDataComplete(
NDIS_DbgPrint(DEBUG_MINIPORT, ("Called.\n"));
AdapterBinding = (PADAPTER_BINDING)Packet->Reserved[0];
AdapterBinding = (PADAPTER_BINDING)Packet->Reserved[1];
KeRaiseIrql(DISPATCH_LEVEL, &OldIrql);
(*AdapterBinding->ProtocolBinding->Chars.TransferDataCompleteHandler)(

View file

@ -279,7 +279,7 @@ ProSend(
ASSERT(KeGetCurrentIrql() <= DISPATCH_LEVEL);
/* XXX what is this crazy black magic? */
Packet->Reserved[0] = (ULONG_PTR)MacBindingHandle;
Packet->Reserved[1] = (ULONG_PTR)MacBindingHandle;
/*
* Test the packet to see if it is a MAC loopback.