When memory is limited, reduce number of rx and tx rings.
Signed-off-by: Amir Vadai <amirv@mellanox.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
        int i;
 
        params->udp_rss = udp_rss;
-       params->num_tx_rings_p_up = min_t(int, num_online_cpus(),
-                       MLX4_EN_MAX_TX_RING_P_UP);
+       params->num_tx_rings_p_up = mlx4_low_memory_profile() ?
+               MLX4_EN_MIN_TX_RING_P_UP :
+               min_t(int, num_online_cpus(), MLX4_EN_MAX_TX_RING_P_UP);
+
        if (params->udp_rss && !(mdev->dev->caps.flags
                                        & MLX4_DEV_CAP_FLAG_UDP_RSS)) {
                mlx4_warn(mdev, "UDP RSS is not supported on this device\n");
 
                                           dev->caps.comp_pool/
                                           dev->caps.num_ports) - 1;
 
-               num_rx_rings = min_t(int, num_of_eqs,
-                                    netif_get_num_default_rss_queues());
+               num_rx_rings = mlx4_low_memory_profile() ? MIN_RX_RINGS :
+                       min_t(int, num_of_eqs,
+                             netif_get_num_default_rss_queues());
                mdev->profile.prof[i].rx_ring_num =
                        rounddown_pow_of_two(num_rx_rings);
        }
 
 #define MLX4_EN_MIN_TX_SIZE    (4096 / TXBB_SIZE)
 
 #define MLX4_EN_SMALL_PKT_SIZE         64
+#define MLX4_EN_MIN_TX_RING_P_UP       1
 #define MLX4_EN_MAX_TX_RING_P_UP       32
 #define MLX4_EN_NUM_UP                 8
 #define MLX4_EN_DEF_TX_RING_SIZE       512