[PATCH] Clean up failure path in DAC960

From: Dave Jones
Date: Wed Sep 01 2004 - 12:28:31 EST


1. If the ScatterGatherPool allocation fails, its pointless
trying to allocate a RequestSensePool.
2. Free up the ScatterGatherPool if the RequestSensePool allocation fails.

Spotted with the source checker from Coverity.com.

Signed-off-by: Dave Jones <davej@xxxxxxxxxx>


diff -urpN --exclude-from=/home/davej/.exclude bk-linus/drivers/block/DAC960.c linux-2.6/drivers/block/DAC960.c
--- bk-linus/drivers/block/DAC960.c 2004-06-04 12:08:32.000000000 +0100
+++ linux-2.6/drivers/block/DAC960.c 2004-06-07 11:07:03.000000000 +0100
@@ -288,12 +288,17 @@ static boolean DAC960_CreateAuxiliaryStr
Controller->PCIDevice,
DAC960_V2_ScatterGatherLimit * sizeof(DAC960_V2_ScatterGatherSegment_T),
sizeof(DAC960_V2_ScatterGatherSegment_T), 0);
+ if (ScatterGatherPool == NULL)
+ return DAC960_Failure(Controller,
+ "AUXILIARY STRUCTURE CREATION (SG)");
RequestSensePool = pci_pool_create("DAC960_V2_RequestSense",
Controller->PCIDevice, sizeof(DAC960_SCSI_RequestSense_T),
sizeof(int), 0);
- if (ScatterGatherPool == NULL || RequestSensePool == NULL)
+ if (RequestSensePool == NULL) {
+ pci_pool_destroy(ScatterGatherPool);
return DAC960_Failure(Controller,
"AUXILIARY STRUCTURE CREATION (SG)");
+ }
Controller->ScatterGatherPool = ScatterGatherPool;
Controller->V2.RequestSensePool = RequestSensePool;
}
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/