]> www.infradead.org Git - users/jedix/linux-maple.git/commitdiff
bnxt_en: Reduce default rings on multi-port cards.
authorMichael Chan <michael.chan@broadcom.com>
Mon, 28 Aug 2017 17:40:31 +0000 (13:40 -0400)
committerJack Vogel <jack.vogel@oracle.com>
Fri, 9 Mar 2018 04:49:59 +0000 (20:49 -0800)
Orabug: 2764835527648339

Reduce default rings from 8 to 4 on multi-port cards to reduce memory
usage.

Signed-off-by: Michael Chan <michael.chan@broadcom.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
(cherry picked from commit d5430d31ca72ec37fd539fd1c5230859509be4ef)
Signed-off-by: Brian Maly <brian.maly@oracle.com>
Reviewed-by: Jack Vogel <jack.vogel@oracle.com>
drivers/net/ethernet/broadcom/bnxt/bnxt.c
drivers/net/ethernet/broadcom/bnxt/bnxt.h

index 90491892c44473c23453ffbc410144a6bac41462..5ebb75996105da0ed085d57f1cf70161b1adf6a0 100644 (file)
@@ -5769,6 +5769,8 @@ static int bnxt_hwrm_phy_qcaps(struct bnxt *bp)
                link_info->support_auto_speeds =
                        le16_to_cpu(resp->supported_speeds_auto_mode);
 
+       bp->port_count = resp->port_cnt;
+
 hwrm_phy_qcaps_exit:
        mutex_unlock(&bp->hwrm_cmd_lock);
        return rc;
@@ -7823,6 +7825,9 @@ static int bnxt_set_dflt_rings(struct bnxt *bp, bool sh)
        if (sh)
                bp->flags |= BNXT_FLAG_SHARED_RINGS;
        dflt_rings = netif_get_num_default_rss_queues();
+       /* Reduce default rings to reduce memory usage on multi-port cards */
+       if (bp->port_count > 1)
+               dflt_rings = min_t(int, dflt_rings, 4);
        rc = bnxt_get_dflt_rings(bp, &max_rx_rings, &max_tx_rings, sh);
        if (rc)
                return rc;
@@ -8016,6 +8021,10 @@ static int bnxt_init_one(struct pci_dev *pdev, const struct pci_device_id *ent)
        bnxt_ethtool_init(bp);
        bnxt_dcb_init(bp);
 
+       rc = bnxt_probe_phy(bp);
+       if (rc)
+               goto init_err_pci_clean;
+
        bnxt_set_rx_skb_mode(bp, false);
        bnxt_set_tpa_flags(bp);
        bnxt_set_ring_params(bp);
@@ -8050,10 +8059,6 @@ static int bnxt_init_one(struct pci_dev *pdev, const struct pci_device_id *ent)
        if (dev->hw_features & NETIF_F_HW_VLAN_CTAG_RX)
                bp->flags |= BNXT_FLAG_STRIP_VLAN;
 
-       rc = bnxt_probe_phy(bp);
-       if (rc)
-               goto init_err_pci_clean;
-
        rc = bnxt_init_int_mode(bp);
        if (rc)
                goto init_err_pci_clean;
index 9b19def436654f77f580fe82c425c4c1849206e7..5f4adbe1648453107146712c83705cc7e86206ee 100644 (file)
@@ -1165,6 +1165,7 @@ struct bnxt {
        u8                      nge_port_cnt;
        __le16                  nge_fw_dst_port_id;
        u8                      port_partition_type;
+       u8                      port_count;
        u16                     br_mode;
 
        u16                     rx_coal_ticks;