Author: cgutman Date: Mon Sep 22 23:29:30 2008 New Revision: 36406
URL: http://svn.reactos.org/svn/reactos?rev=36406&view=rev Log: - Add some IRQL checks - Fix some comments
Modified: branches/aicom-network-fixes/drivers/network/dd/pcnet/pcnet.c branches/aicom-network-fixes/drivers/network/dd/pcnet/pcnet.h branches/aicom-network-fixes/drivers/network/dd/pcnet/requests.c
Modified: branches/aicom-network-fixes/drivers/network/dd/pcnet/pcnet.c URL: http://svn.reactos.org/svn/reactos/branches/aicom-network-fixes/drivers/netw... ============================================================================== --- branches/aicom-network-fixes/drivers/network/dd/pcnet/pcnet.c [iso-8859-1] (original) +++ branches/aicom-network-fixes/drivers/network/dd/pcnet/pcnet.c [iso-8859-1] Mon Sep 22 23:29:30 2008 @@ -69,6 +69,8 @@
DPRINT("Called\n");
+ ASSERT_IRQL_EQUAL(DISPATCH_LEVEL); + NdisDprAcquireSpinLock(&Adapter->Lock);
NdisRawWritePortUshort(Adapter->PortOffset + RAP, CSR0); @@ -624,6 +626,8 @@ { PADAPTER Adapter = (PADAPTER)FunctionContext;
+ ASSERT_IRQL_EQUAL(DISPATCH_LEVEL); + if (NdisMSynchronizeWithInterrupt(&Adapter->InterruptObject, MiSyncMediaDetection, FunctionContext)) @@ -812,6 +816,8 @@ NDIS_STATUS Status = NDIS_STATUS_FAILURE; BOOLEAN InterruptRegistered = FALSE;
+ ASSERT_IRQL_EQUAL(PASSIVE_LEVEL); + /* Pick a medium */ for(i = 0; i < MediumArraySize; i++) if(MediumArray[i] == NdisMedium802_3) @@ -1023,6 +1029,8 @@ { DPRINT("Called\n");
+ ASSERT_IRQL_EQUAL(PASSIVE_LEVEL); + /* MiniportReset doesn't do anything at the moment... perhaps this should be fixed. */
*AddressingReset = FALSE; @@ -1071,6 +1079,8 @@ UINT TotalPacketLength, SourceLength, Position = 0;
DPRINT("Called\n"); + + ASSERT_IRQL_EQUAL(DISPATCH_LEVEL);
NdisDprAcquireSpinLock(&Adapter->Lock);
Modified: branches/aicom-network-fixes/drivers/network/dd/pcnet/pcnet.h URL: http://svn.reactos.org/svn/reactos/branches/aicom-network-fixes/drivers/netw... ============================================================================== --- branches/aicom-network-fixes/drivers/network/dd/pcnet/pcnet.h [iso-8859-1] (original) +++ branches/aicom-network-fixes/drivers/network/dd/pcnet/pcnet.h [iso-8859-1] Mon Sep 22 23:29:30 2008 @@ -141,8 +141,10 @@
#if DBG #define BREAKPOINT DbgBreakPoint(); +#define ASSERT_IRQL_EQUAL(x) ASSERT(KeGetCurrentIrql() == x) #else #define BREAKPOINT +#define ASSERT_IRQL_EQUAL(x) #endif
/* memory pool tag */
Modified: branches/aicom-network-fixes/drivers/network/dd/pcnet/requests.c URL: http://svn.reactos.org/svn/reactos/branches/aicom-network-fixes/drivers/netw... ============================================================================== --- branches/aicom-network-fixes/drivers/network/dd/pcnet/requests.c [iso-8859-1] (original) +++ branches/aicom-network-fixes/drivers/network/dd/pcnet/requests.c [iso-8859-1] Mon Sep 22 23:29:30 2008 @@ -103,7 +103,7 @@ * RETURNS: * NDIS_STATUS_SUCCESS on all queries * NOTES: - * - Called by NDIS at PASSIVE_LEVEL + * - Called by NDIS at DISPATCH_LEVEL * - If InformationBufferLength is insufficient to store the results, return the amount * needed in BytesNeeded and return NDIS_STATUS_INVALID_LENGTH * TODO: @@ -117,6 +117,8 @@ PADAPTER Adapter = (PADAPTER)MiniportAdapterContext;
DPRINT("Called. OID 0x%x\n", Oid); + + ASSERT_IRQL_EQUAL(DISPATCH_LEVEL);
ASSERT(Adapter);
@@ -390,7 +392,7 @@ * RETURNS: * NDIS_STATUS_SUCCESS on all requests * NOTES: - * - Called by NDIS at PASSIVE_LEVEL + * - Called by NDIS at DISPATCH_LEVEL * - verify buffer space as mentioned in previous function notes */ { @@ -399,6 +401,8 @@ PADAPTER Adapter = (PADAPTER)MiniportAdapterContext;
ASSERT(Adapter); + + ASSERT_IRQL_EQUAL(DISPATCH_LEVEL);
DPRINT("Called, OID 0x%x\n", Oid);