diff options
author | Kamal Heib <kamalh@mellanox.com> | 2016-12-06 10:32:43 -0500 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2016-12-06 11:44:43 -0500 |
commit | f663ad98623926b8d7bdef4b4648d10c0229aebe (patch) | |
tree | 33ee3853074e6eca1f2ff0419c4f59d3cfb41dc3 | |
parent | f85de6666347c974cdf97b1026180995d912d7d0 (diff) |
net/mlx5: Verify module parameters
Verify the mlx5_core module parameters by making sure that they are in
the expected range and if they aren't restore them to their default
values.
Fixes: 9603b61de1ee ('mlx5: Move pci device handling from mlx5_ib to mlx5_core')
Signed-off-by: Kamal Heib <kamalh@mellanox.com>
Signed-off-by: Saeed Mahameed <saeedm@mellanox.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
-rw-r--r-- | drivers/net/ethernet/mellanox/mlx5/core/main.c | 27 | ||||
-rw-r--r-- | drivers/net/ethernet/mellanox/mlx5/core/mlx5_core.h | 2 |
2 files changed, 17 insertions, 12 deletions
diff --git a/drivers/net/ethernet/mellanox/mlx5/core/main.c b/drivers/net/ethernet/mellanox/mlx5/core/main.c index 3b7c6a9f2b5f..22eb3be06651 100644 --- a/drivers/net/ethernet/mellanox/mlx5/core/main.c +++ b/drivers/net/ethernet/mellanox/mlx5/core/main.c | |||
@@ -62,13 +62,13 @@ MODULE_DESCRIPTION("Mellanox Connect-IB, ConnectX-4 core driver"); | |||
62 | MODULE_LICENSE("Dual BSD/GPL"); | 62 | MODULE_LICENSE("Dual BSD/GPL"); |
63 | MODULE_VERSION(DRIVER_VERSION); | 63 | MODULE_VERSION(DRIVER_VERSION); |
64 | 64 | ||
65 | int mlx5_core_debug_mask; | 65 | unsigned int mlx5_core_debug_mask; |
66 | module_param_named(debug_mask, mlx5_core_debug_mask, int, 0644); | 66 | module_param_named(debug_mask, mlx5_core_debug_mask, uint, 0644); |
67 | MODULE_PARM_DESC(debug_mask, "debug mask: 1 = dump cmd data, 2 = dump cmd exec time, 3 = both. Default=0"); | 67 | MODULE_PARM_DESC(debug_mask, "debug mask: 1 = dump cmd data, 2 = dump cmd exec time, 3 = both. Default=0"); |
68 | 68 | ||
69 | #define MLX5_DEFAULT_PROF 2 | 69 | #define MLX5_DEFAULT_PROF 2 |
70 | static int prof_sel = MLX5_DEFAULT_PROF; | 70 | static unsigned int prof_sel = MLX5_DEFAULT_PROF; |
71 | module_param_named(prof_sel, prof_sel, int, 0444); | 71 | module_param_named(prof_sel, prof_sel, uint, 0444); |
72 | MODULE_PARM_DESC(prof_sel, "profile selector. Valid range 0 - 2"); | 72 | MODULE_PARM_DESC(prof_sel, "profile selector. Valid range 0 - 2"); |
73 | 73 | ||
74 | enum { | 74 | enum { |
@@ -1227,13 +1227,6 @@ static int init_one(struct pci_dev *pdev, | |||
1227 | 1227 | ||
1228 | dev->pdev = pdev; | 1228 | dev->pdev = pdev; |
1229 | dev->event = mlx5_core_event; | 1229 | dev->event = mlx5_core_event; |
1230 | |||
1231 | if (prof_sel < 0 || prof_sel >= ARRAY_SIZE(profile)) { | ||
1232 | mlx5_core_warn(dev, | ||
1233 | "selected profile out of range, selecting default (%d)\n", | ||
1234 | MLX5_DEFAULT_PROF); | ||
1235 | prof_sel = MLX5_DEFAULT_PROF; | ||
1236 | } | ||
1237 | dev->profile = &profile[prof_sel]; | 1230 | dev->profile = &profile[prof_sel]; |
1238 | 1231 | ||
1239 | INIT_LIST_HEAD(&priv->ctx_list); | 1232 | INIT_LIST_HEAD(&priv->ctx_list); |
@@ -1450,10 +1443,22 @@ static struct pci_driver mlx5_core_driver = { | |||
1450 | .sriov_configure = mlx5_core_sriov_configure, | 1443 | .sriov_configure = mlx5_core_sriov_configure, |
1451 | }; | 1444 | }; |
1452 | 1445 | ||
1446 | static void mlx5_core_verify_params(void) | ||
1447 | { | ||
1448 | if (prof_sel >= ARRAY_SIZE(profile)) { | ||
1449 | pr_warn("mlx5_core: WARNING: Invalid module parameter prof_sel %d, valid range 0-%zu, changing back to default(%d)\n", | ||
1450 | prof_sel, | ||
1451 | ARRAY_SIZE(profile) - 1, | ||
1452 | MLX5_DEFAULT_PROF); | ||
1453 | prof_sel = MLX5_DEFAULT_PROF; | ||
1454 | } | ||
1455 | } | ||
1456 | |||
1453 | static int __init init(void) | 1457 | static int __init init(void) |
1454 | { | 1458 | { |
1455 | int err; | 1459 | int err; |
1456 | 1460 | ||
1461 | mlx5_core_verify_params(); | ||
1457 | mlx5_register_debugfs(); | 1462 | mlx5_register_debugfs(); |
1458 | 1463 | ||
1459 | err = pci_register_driver(&mlx5_core_driver); | 1464 | err = pci_register_driver(&mlx5_core_driver); |
diff --git a/drivers/net/ethernet/mellanox/mlx5/core/mlx5_core.h b/drivers/net/ethernet/mellanox/mlx5/core/mlx5_core.h index 187662c8ea96..20d16b137e03 100644 --- a/drivers/net/ethernet/mellanox/mlx5/core/mlx5_core.h +++ b/drivers/net/ethernet/mellanox/mlx5/core/mlx5_core.h | |||
@@ -44,7 +44,7 @@ | |||
44 | 44 | ||
45 | #define MLX5_TOTAL_VPORTS(mdev) (1 + pci_sriov_get_totalvfs(mdev->pdev)) | 45 | #define MLX5_TOTAL_VPORTS(mdev) (1 + pci_sriov_get_totalvfs(mdev->pdev)) |
46 | 46 | ||
47 | extern int mlx5_core_debug_mask; | 47 | extern uint mlx5_core_debug_mask; |
48 | 48 | ||
49 | #define mlx5_core_dbg(__dev, format, ...) \ | 49 | #define mlx5_core_dbg(__dev, format, ...) \ |
50 | dev_dbg(&(__dev)->pdev->dev, "%s:%s:%d:(pid %d): " format, \ | 50 | dev_dbg(&(__dev)->pdev->dev, "%s:%s:%d:(pid %d): " format, \ |