OSDN Git Service

be2net: Remove useless DMA-32 fallback configuration
authorChristophe JAILLET <christophe.jaillet@wanadoo.fr>
Sun, 9 Jan 2022 09:03:49 +0000 (10:03 +0100)
committerJakub Kicinski <kuba@kernel.org>
Mon, 10 Jan 2022 00:52:19 +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, 'netdev->features' will have
NETIF_F_HIGHDMA in all cases. Move the assignment of this feature in
be_netdev_init() instead be_probe() which is a much logical place.

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/637696d7141faa68c29fc34b70f9aa67d5e605f0.1641718999.git.christophe.jaillet@wanadoo.fr
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
drivers/net/ethernet/emulex/benet/be_main.c

index d51f24c..ad67b42 100644 (file)
@@ -5194,7 +5194,8 @@ static void be_netdev_init(struct net_device *netdev)
                netdev->hw_features |= NETIF_F_RXHASH;
 
        netdev->features |= netdev->hw_features |
-               NETIF_F_HW_VLAN_CTAG_RX | NETIF_F_HW_VLAN_CTAG_FILTER;
+               NETIF_F_HW_VLAN_CTAG_RX | NETIF_F_HW_VLAN_CTAG_FILTER |
+               NETIF_F_HIGHDMA;
 
        netdev->vlan_features |= NETIF_F_SG | NETIF_F_TSO | NETIF_F_TSO6 |
                NETIF_F_IP_CSUM | NETIF_F_IPV6_CSUM;
@@ -5840,14 +5841,9 @@ static int be_probe(struct pci_dev *pdev, const struct pci_device_id *pdev_id)
        SET_NETDEV_DEV(netdev, &pdev->dev);
 
        status = dma_set_mask_and_coherent(&pdev->dev, DMA_BIT_MASK(64));
-       if (!status) {
-               netdev->features |= NETIF_F_HIGHDMA;
-       } else {
-               status = dma_set_mask_and_coherent(&pdev->dev, DMA_BIT_MASK(32));
-               if (status) {
-                       dev_err(&pdev->dev, "Could not set PCI DMA Mask\n");
-                       goto free_netdev;
-               }
+       if (status) {
+               dev_err(&pdev->dev, "Could not set PCI DMA Mask\n");
+               goto free_netdev;
        }
 
        status = pci_enable_pcie_error_reporting(pdev);