mirror of
https://github.com/reactos/reactos.git
synced 2025-04-27 00:50:23 +00:00
- Don't leak the dma adapter when we fail
svn path=/trunk/; revision=40554
This commit is contained in:
parent
0f8d58977d
commit
8d8ce081fa
1 changed files with 10 additions and 0 deletions
|
@ -327,6 +327,8 @@ NdisMAllocateMapRegisters(
|
|||
NDIS_DbgPrint(MIN_TRACE, ("Didn't get enough map registers from hal - requested 0x%x, got 0x%x\n",
|
||||
MapRegistersPerBaseRegister, AvailableMapRegisters));
|
||||
|
||||
AdapterObject->DmaOperations->PutDmaAdapter(AdapterObject);
|
||||
Adapter->NdisMiniportBlock.SystemAdapterObject = NULL;
|
||||
return NDIS_STATUS_RESOURCES;
|
||||
}
|
||||
|
||||
|
@ -335,6 +337,8 @@ NdisMAllocateMapRegisters(
|
|||
if(!Adapter->NdisMiniportBlock.MapRegisters)
|
||||
{
|
||||
NDIS_DbgPrint(MIN_TRACE, ("insufficient resources.\n"));
|
||||
AdapterObject->DmaOperations->PutDmaAdapter(AdapterObject);
|
||||
Adapter->NdisMiniportBlock.SystemAdapterObject = NULL;
|
||||
return NDIS_STATUS_RESOURCES;
|
||||
}
|
||||
|
||||
|
@ -359,6 +363,9 @@ NdisMAllocateMapRegisters(
|
|||
{
|
||||
NDIS_DbgPrint(MIN_TRACE, ("IoAllocateAdapterChannel failed: 0x%x\n", NtStatus));
|
||||
ExFreePool(Adapter->NdisMiniportBlock.MapRegisters);
|
||||
AdapterObject->DmaOperations->PutDmaAdapter(AdapterObject);
|
||||
Adapter->NdisMiniportBlock.CurrentMapRegister = Adapter->NdisMiniportBlock.BaseMapRegistersNeeded = 0;
|
||||
Adapter->NdisMiniportBlock.SystemAdapterObject = NULL;
|
||||
return NDIS_STATUS_RESOURCES;
|
||||
}
|
||||
|
||||
|
@ -370,6 +377,9 @@ NdisMAllocateMapRegisters(
|
|||
{
|
||||
NDIS_DbgPrint(MIN_TRACE, ("KeWaitForSingleObject failed: 0x%x\n", NtStatus));
|
||||
ExFreePool(Adapter->NdisMiniportBlock.MapRegisters);
|
||||
AdapterObject->DmaOperations->PutDmaAdapter(AdapterObject);
|
||||
Adapter->NdisMiniportBlock.CurrentMapRegister = Adapter->NdisMiniportBlock.BaseMapRegistersNeeded = 0;
|
||||
Adapter->NdisMiniportBlock.SystemAdapterObject = NULL;
|
||||
return NDIS_STATUS_RESOURCES;
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in a new issue