From c218692561620094fb7c563d11393cd470c76d39 Mon Sep 17 00:00:00 2001 From: Cameron Gutman Date: Wed, 22 Apr 2009 03:27:33 +0000 Subject: [PATCH] - Don't attempt to store packets and buffers in the same place svn path=/trunk/; revision=40643 --- reactos/drivers/network/ndis/ndis/buffer.c | 16 ++++++++-------- reactos/drivers/network/ndis/ndis/miniport.c | 4 ++-- reactos/drivers/network/ndis/ndis/protocol.c | 2 +- 3 files changed, 11 insertions(+), 11 deletions(-) diff --git a/reactos/drivers/network/ndis/ndis/buffer.c b/reactos/drivers/network/ndis/ndis/buffer.c index 6499e4e9238..2a7264b60fe 100644 --- a/reactos/drivers/network/ndis/ndis/buffer.c +++ b/reactos/drivers/network/ndis/ndis/buffer.c @@ -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); } diff --git a/reactos/drivers/network/ndis/ndis/miniport.c b/reactos/drivers/network/ndis/ndis/miniport.c index b854d696c2a..006e71b7c65 100644 --- a/reactos/drivers/network/ndis/ndis/miniport.c +++ b/reactos/drivers/network/ndis/ndis/miniport.c @@ -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)( diff --git a/reactos/drivers/network/ndis/ndis/protocol.c b/reactos/drivers/network/ndis/ndis/protocol.c index f386cb36e14..e90ea65735c 100644 --- a/reactos/drivers/network/ndis/ndis/protocol.c +++ b/reactos/drivers/network/ndis/ndis/protocol.c @@ -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.