Skip to content

Commit e573283

Browse files
Tariq Toukandavem330
authored andcommitted
net/mlx4_core: Use msi_x module param to limit num of MSI-X irqs
Extend the boolean interpretation of msi_x module parameter to numerical, as follows: 0 - Don't use MSI-X. 1 - Use MSI-X, driver decides the num of MSI-X irqs. >=2 - Use MSI-X, limit number of MSI-X irqs to msi_x. In SRIOV, this limits the number of MSI-X irqs per VF. Signed-off-by: Tariq Toukan <[email protected]> Cc: Ajaykumar Hotchandani <[email protected]> Reviewed-by: Ajaykumar Hotchandani <[email protected]> Signed-off-by: David S. Miller <[email protected]>
1 parent 86a3e5d commit e573283

File tree

1 file changed

+9
-1
lines changed
  • drivers/net/ethernet/mellanox/mlx4

1 file changed

+9
-1
lines changed

drivers/net/ethernet/mellanox/mlx4/main.c

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -73,7 +73,7 @@ MODULE_PARM_DESC(debug_level, "Enable debug tracing if > 0");
7373

7474
static int msi_x = 1;
7575
module_param(msi_x, int, 0444);
76-
MODULE_PARM_DESC(msi_x, "attempt to use MSI-X if nonzero");
76+
MODULE_PARM_DESC(msi_x, "0 - don't use MSI-X, 1 - use MSI-X, >1 - limit number of MSI-X irqs to msi_x");
7777

7878
#else /* CONFIG_PCI_MSI */
7979

@@ -2815,6 +2815,9 @@ static void mlx4_enable_msi_x(struct mlx4_dev *dev)
28152815
dev->caps.num_eqs - dev->caps.reserved_eqs,
28162816
MAX_MSIX);
28172817

2818+
if (msi_x > 1)
2819+
nreq = min_t(int, nreq, msi_x);
2820+
28182821
entries = kcalloc(nreq, sizeof(*entries), GFP_KERNEL);
28192822
if (!entries)
28202823
goto no_msi;
@@ -4182,6 +4185,11 @@ static struct pci_driver mlx4_driver = {
41824185

41834186
static int __init mlx4_verify_params(void)
41844187
{
4188+
if (msi_x < 0) {
4189+
pr_warn("mlx4_core: bad msi_x: %d\n", msi_x);
4190+
return -1;
4191+
}
4192+
41854193
if ((log_num_mac < 0) || (log_num_mac > 7)) {
41864194
pr_warn("mlx4_core: bad num_mac: %d\n", log_num_mac);
41874195
return -1;

0 commit comments

Comments
 (0)