Преглед изворни кода

[SCSI] aacraid: Error path cleanup

Received from Mark Salyzyn

Some of the error return paths during initialization resulted in a zero
report to caller

Signed-off-by: Mark Haverkamp <markh@osdl.org>
Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>
Mark Haverkamp пре 19 година
родитељ
комит
e61b17fd3a
1 измењених фајлова са 3 додато и 2 уклоњено
  1. 3 2
      drivers/scsi/aacraid/linit.c

+ 3 - 2
drivers/scsi/aacraid/linit.c

@@ -800,10 +800,11 @@ static int __devinit aac_probe_one(struct pci_dev *pdev,
 	error = pci_enable_device(pdev);
 	if (error)
 		goto out;
+	error = -ENODEV;
 
 	if (pci_set_dma_mask(pdev, DMA_32BIT_MASK) || 
 			pci_set_consistent_dma_mask(pdev, DMA_32BIT_MASK))
-		goto out;
+		goto out_disable_pdev;
 	/*
 	 * If the quirk31 bit is set, the adapter needs adapter
 	 * to driver communication memory to be allocated below 2gig
@@ -811,7 +812,7 @@ static int __devinit aac_probe_one(struct pci_dev *pdev,
 	if (aac_drivers[index].quirks & AAC_QUIRK_31BIT) 
 		if (pci_set_dma_mask(pdev, DMA_31BIT_MASK) ||
 				pci_set_consistent_dma_mask(pdev, DMA_31BIT_MASK))
-			goto out;
+			goto out_disable_pdev;
 	
 	pci_set_master(pdev);