aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorKamal Heib <kamalh@mellanox.com>2016-12-06 10:32:43 -0500
committerDavid S. Miller <davem@davemloft.net>2016-12-06 11:44:43 -0500
commitf663ad98623926b8d7bdef4b4648d10c0229aebe (patch)
tree33ee3853074e6eca1f2ff0419c4f59d3cfb41dc3
parentf85de6666347c974cdf97b1026180995d912d7d0 (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.c27
-rw-r--r--drivers/net/ethernet/mellanox/mlx5/core/mlx5_core.h2
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");
62MODULE_LICENSE("Dual BSD/GPL"); 62MODULE_LICENSE("Dual BSD/GPL");
63MODULE_VERSION(DRIVER_VERSION); 63MODULE_VERSION(DRIVER_VERSION);
64 64
65int mlx5_core_debug_mask; 65unsigned int mlx5_core_debug_mask;
66module_param_named(debug_mask, mlx5_core_debug_mask, int, 0644); 66module_param_named(debug_mask, mlx5_core_debug_mask, uint, 0644);
67MODULE_PARM_DESC(debug_mask, "debug mask: 1 = dump cmd data, 2 = dump cmd exec time, 3 = both. Default=0"); 67MODULE_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
70static int prof_sel = MLX5_DEFAULT_PROF; 70static unsigned int prof_sel = MLX5_DEFAULT_PROF;
71module_param_named(prof_sel, prof_sel, int, 0444); 71module_param_named(prof_sel, prof_sel, uint, 0444);
72MODULE_PARM_DESC(prof_sel, "profile selector. Valid range 0 - 2"); 72MODULE_PARM_DESC(prof_sel, "profile selector. Valid range 0 - 2");
73 73
74enum { 74enum {
@@ -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
1446static 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
1453static int __init init(void) 1457static 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
47extern int mlx5_core_debug_mask; 47extern 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, \