OSDN Git Service

net: dsa: felix: the switch does not support DMA
authorVladimir Oltean <vladimir.oltean@nxp.com>
Sat, 9 Jan 2021 20:34:15 +0000 (22:34 +0200)
committerJakub Kicinski <kuba@kernel.org>
Tue, 12 Jan 2021 00:16:35 +0000 (16:16 -0800)
The code that sets the DMA mask to 64 bits is bogus, it is taken from
the enetc driver together with the rest of the PCI probing boilerplate.

Since this patch is touching the error path to delete err_dma, let's
also change the err_alloc_felix label which was incorrect. The kzalloc
failure does not need a kfree, but it doesn't hurt either, since kfree
works with NULL pointers.

Signed-off-by: Vladimir Oltean <vladimir.oltean@nxp.com>
Reviewed-by: Florian Fainelli <f.fainelli@gmail.com>
Link: https://lore.kernel.org/r/20210109203415.2120142-1-olteanv@gmail.com
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
drivers/net/dsa/ocelot/felix_vsc9959.c

index 2e5bbdc..a87597e 100644 (file)
@@ -1408,17 +1408,6 @@ static int felix_pci_probe(struct pci_dev *pdev,
                goto err_pci_enable;
        }
 
-       /* 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;
-               }
-       }
-
        felix = kzalloc(sizeof(struct felix), GFP_KERNEL);
        if (!felix) {
                err = -ENOMEM;
@@ -1474,9 +1463,8 @@ err_register_ds:
        kfree(ds);
 err_alloc_ds:
 err_alloc_irq:
-err_alloc_felix:
        kfree(felix);
-err_dma:
+err_alloc_felix:
        pci_disable_device(pdev);
 err_pci_enable:
        return err;