mlx4_en: Verify number of RX rings doesn't exceed MAX_RX_RINGS
authorYevgeny Petrilin <yevgenyp@mellanox.co.il>
Tue, 30 Dec 2008 02:38:21 +0000 (18:38 -0800)
committerDavid S. Miller <davem@davemloft.net>
Tue, 30 Dec 2008 02:38:21 +0000 (18:38 -0800)
Required in cases were dev->caps.num_comp_vectors > MAX_RX_RINGS.
For current values this would happen on machines that have more
then 16 cores.

Signed-off-by: Yevgeny Petrilin <yevgenyp@mellanox.co.il>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/mlx4/en_main.c

index c1c0585..34f3a19 100644 (file)
@@ -170,7 +170,8 @@ static void *mlx4_en_add(struct mlx4_dev *dev)
                mlx4_info(mdev, "Using %d tx rings for port:%d\n",
                          mdev->profile.prof[i].tx_ring_num, i);
                if (!mdev->profile.prof[i].rx_ring_num) {
-                       mdev->profile.prof[i].rx_ring_num = dev->caps.num_comp_vectors;
+                       mdev->profile.prof[i].rx_ring_num =
+                               min_t(int, dev->caps.num_comp_vectors, MAX_RX_RINGS);
                        mlx4_info(mdev, "Defaulting to %d rx rings for port:%d\n",
                                  mdev->profile.prof[i].rx_ring_num, i);
                } else