OSDN Git Service

cxgb4: Remove useless DMA-32 fallback configuration
authorChristophe JAILLET <christophe.jaillet@wanadoo.fr>
Sun, 9 Jan 2022 13:53:27 +0000 (14:53 +0100)
committerJakub Kicinski <kuba@kernel.org>
Mon, 10 Jan 2022 00:52:20 +0000 (16:52 -0800)
As stated in [1], dma_set_mask() with a 64-bit mask never fails 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, 'highdma' is known to be true.

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/56db10d53be0897ff1be5f37d64b91cb7e1d932c.1641736387.git.christophe.jaillet@wanadoo.fr
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
drivers/net/ethernet/chelsio/cxgb4/cxgb4_main.c

index dde1cf5..0c78c0d 100644 (file)
@@ -6608,7 +6608,6 @@ static int init_one(struct pci_dev *pdev, const struct pci_device_id *ent)
        static int adap_idx = 1;
        int s_qpp, qpp, num_seg;
        struct port_info *pi;
-       bool highdma = false;
        enum chip_type chip;
        void __iomem *regs;
        int func, chip_ver;
@@ -6687,14 +6686,10 @@ static int init_one(struct pci_dev *pdev, const struct pci_device_id *ent)
                return 0;
        }
 
-       if (!dma_set_mask_and_coherent(&pdev->dev, DMA_BIT_MASK(64))) {
-               highdma = true;
-       } else {
-               err = dma_set_mask(&pdev->dev, DMA_BIT_MASK(32));
-               if (err) {
-                       dev_err(&pdev->dev, "no usable DMA configuration\n");
-                       goto out_free_adapter;
-               }
+       err = dma_set_mask_and_coherent(&pdev->dev, DMA_BIT_MASK(64));
+       if (err) {
+               dev_err(&pdev->dev, "no usable DMA configuration\n");
+               goto out_free_adapter;
        }
 
        pci_enable_pcie_error_reporting(pdev);
@@ -6823,7 +6818,7 @@ static int init_one(struct pci_dev *pdev, const struct pci_device_id *ent)
                        NETIF_F_IP_CSUM | NETIF_F_IPV6_CSUM |
                        NETIF_F_RXCSUM | NETIF_F_RXHASH | NETIF_F_GRO |
                        NETIF_F_HW_VLAN_CTAG_TX | NETIF_F_HW_VLAN_CTAG_RX |
-                       NETIF_F_HW_TC | NETIF_F_NTUPLE;
+                       NETIF_F_HW_TC | NETIF_F_NTUPLE | NETIF_F_HIGHDMA;
 
                if (chip_ver > CHELSIO_T5) {
                        netdev->hw_enc_features |= NETIF_F_IP_CSUM |
@@ -6841,8 +6836,6 @@ static int init_one(struct pci_dev *pdev, const struct pci_device_id *ent)
                                netdev->udp_tunnel_nic_info = &cxgb_udp_tunnels;
                }
 
-               if (highdma)
-                       netdev->hw_features |= NETIF_F_HIGHDMA;
                netdev->features |= netdev->hw_features;
                netdev->vlan_features = netdev->features & VLAN_FEAT;
 #if IS_ENABLED(CONFIG_CHELSIO_TLS_DEVICE)