OSDN Git Service

bna: Simplify DMA setting
authorChristophe JAILLET <christophe.jaillet@wanadoo.fr>
Sat, 8 Jan 2022 16:16:16 +0000 (17:16 +0100)
committerJakub Kicinski <kuba@kernel.org>
Mon, 10 Jan 2022 00:52:18 +0000 (16:52 -0800)
As stated in [1], dma_set_mask() with a 64-bit mask will never fail if
dev->dma_mask is non-NULL.
So, if it fails, the 32 bits case will also fail for the same reason.

So, if dma_set_mask_and_coherent() succeeds, 'using_dac' is known to be
'true'. This variable can be removed.

Simplify code and remove some dead code accordingly.

[1]: https://lkml.org/lkml/2021/6/7/398

Signed-off-by: Christophe JAILLET <christophe.jaillet@wanadoo.fr>
Link: https://lore.kernel.org/r/1d5a7b3f4fa735f1233c3eb3fa07e71df95fad75.1641658516.git.christophe.jaillet@wanadoo.fr
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
drivers/net/ethernet/brocade/bna/bnad.c

index bbdc829..f1d2c4c 100644 (file)
@@ -3421,7 +3421,7 @@ static const struct net_device_ops bnad_netdev_ops = {
 };
 
 static void
-bnad_netdev_init(struct bnad *bnad, bool using_dac)
+bnad_netdev_init(struct bnad *bnad)
 {
        struct net_device *netdev = bnad->netdev;
 
@@ -3434,10 +3434,8 @@ bnad_netdev_init(struct bnad *bnad, bool using_dac)
                NETIF_F_IP_CSUM | NETIF_F_IPV6_CSUM |
                NETIF_F_TSO | NETIF_F_TSO6;
 
-       netdev->features |= netdev->hw_features | NETIF_F_HW_VLAN_CTAG_FILTER;
-
-       if (using_dac)
-               netdev->features |= NETIF_F_HIGHDMA;
+       netdev->features |= netdev->hw_features | NETIF_F_HW_VLAN_CTAG_FILTER |
+                           NETIF_F_HIGHDMA;
 
        netdev->mem_start = bnad->mmio_start;
        netdev->mem_end = bnad->mmio_start + bnad->mmio_len - 1;
@@ -3544,8 +3542,7 @@ bnad_lock_uninit(struct bnad *bnad)
 
 /* PCI Initialization */
 static int
-bnad_pci_init(struct bnad *bnad,
-             struct pci_dev *pdev, bool *using_dac)
+bnad_pci_init(struct bnad *bnad, struct pci_dev *pdev)
 {
        int err;
 
@@ -3555,14 +3552,9 @@ bnad_pci_init(struct bnad *bnad,
        err = pci_request_regions(pdev, BNAD_NAME);
        if (err)
                goto disable_device;
-       if (!dma_set_mask_and_coherent(&pdev->dev, DMA_BIT_MASK(64))) {
-               *using_dac = true;
-       } else {
-               err = dma_set_mask_and_coherent(&pdev->dev, DMA_BIT_MASK(32));
-               if (err)
-                       goto release_regions;
-               *using_dac = false;
-       }
+       err = dma_set_mask_and_coherent(&pdev->dev, DMA_BIT_MASK(64));
+       if (err)
+               goto release_regions;
        pci_set_master(pdev);
        return 0;
 
@@ -3585,7 +3577,6 @@ static int
 bnad_pci_probe(struct pci_dev *pdev,
                const struct pci_device_id *pcidev_id)
 {
-       bool    using_dac;
        int     err;
        struct bnad *bnad;
        struct bna *bna;
@@ -3615,13 +3606,8 @@ bnad_pci_probe(struct pci_dev *pdev,
        bnad->id = atomic_inc_return(&bna_id) - 1;
 
        mutex_lock(&bnad->conf_mutex);
-       /*
-        * PCI initialization
-        *      Output : using_dac = 1 for 64 bit DMA
-        *                         = 0 for 32 bit DMA
-        */
-       using_dac = false;
-       err = bnad_pci_init(bnad, pdev, &using_dac);
+       /* PCI initialization */
+       err = bnad_pci_init(bnad, pdev);
        if (err)
                goto unlock_mutex;
 
@@ -3634,7 +3620,7 @@ bnad_pci_probe(struct pci_dev *pdev,
                goto pci_uninit;
 
        /* Initialize netdev structure, set up ethtool ops */
-       bnad_netdev_init(bnad, using_dac);
+       bnad_netdev_init(bnad);
 
        /* Set link to down state */
        netif_carrier_off(netdev);