i40e/i40evf: fix error checking path
authorJean Sacren <sakiwit@gmail.com>
Tue, 25 Mar 2014 04:30:27 +0000 (04:30 +0000)
committerJeff Kirsher <jeffrey.t.kirsher@intel.com>
Mon, 31 Mar 2014 22:48:02 +0000 (15:48 -0700)
The commit 6494294f277fd ("i40e/i40evf: Use
dma_set_mask_and_coherent") uses dma_set_mask_and_coherent() to
replace dma_set_coherent_mask() for the benefit of return error.
The conversion brings some confusion in error checking as whether
against DMA_BIT_MASK(64) or DMA_BIT_MASK(32). For one, if error is
zero, the check will be against DMA_BIT_MASK(64) twice. Fix this
error checking by binding the check to the pertinent one.

Cc: Mitch Williams <mitch.a.williams@intel.com>
Signed-off-by: Jean Sacren <sakiwit@gmail.com>
Tested-by: Kavindya Deegala <kavindya.s.deegala@intel.com>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
drivers/net/ethernet/intel/i40e/i40e_main.c
drivers/net/ethernet/intel/i40evf/i40evf_main.c

index a1ec793b93db234ab3144066c558c93236b21184..861b722c2672e78b0ed0ccbe2cdd2f4428d8f472 100644 (file)
@@ -8091,12 +8091,13 @@ static int i40e_probe(struct pci_dev *pdev, const struct pci_device_id *ent)
 
        /* set up for high or low dma */
        err = dma_set_mask_and_coherent(&pdev->dev, DMA_BIT_MASK(64));
-       if (err)
-               err = dma_set_mask_and_coherent(&pdev->dev, DMA_BIT_MASK(32));
        if (err) {
-               dev_err(&pdev->dev,
-                       "DMA configuration failed: 0x%x\n", err);
-               goto err_dma;
+               err = dma_set_mask_and_coherent(&pdev->dev, DMA_BIT_MASK(32));
+               if (err) {
+                       dev_err(&pdev->dev,
+                               "DMA configuration failed: 0x%x\n", err);
+                       goto err_dma;
+               }
        }
 
        /* set up pci connections */
index 51c84c19d2bee9d834615e967c1dc92ec082ee75..e35e66ffa78245fd19f66f573686f33b38fc08b6 100644 (file)
@@ -2191,12 +2191,13 @@ static int i40evf_probe(struct pci_dev *pdev, const struct pci_device_id *ent)
                return err;
 
        err = dma_set_mask_and_coherent(&pdev->dev, DMA_BIT_MASK(64));
-       if (err)
-               err = dma_set_mask_and_coherent(&pdev->dev, DMA_BIT_MASK(32));
        if (err) {
-               dev_err(&pdev->dev,
-                       "DMA configuration failed: 0x%x\n", err);
-               goto err_dma;
+               err = dma_set_mask_and_coherent(&pdev->dev, DMA_BIT_MASK(32));
+               if (err) {
+                       dev_err(&pdev->dev,
+                               "DMA configuration failed: 0x%x\n", err);
+                       goto err_dma;
+               }
        }
 
        err = pci_request_regions(pdev, i40evf_driver_name);