mirror of
https://github.com/torvalds/linux.git
synced 2024-11-23 20:51:44 +00:00
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: 9603b61de1
('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>
This commit is contained in:
parent
f85de66663
commit
f663ad9862
@ -62,13 +62,13 @@ MODULE_DESCRIPTION("Mellanox Connect-IB, ConnectX-4 core driver");
|
|||||||
MODULE_LICENSE("Dual BSD/GPL");
|
MODULE_LICENSE("Dual BSD/GPL");
|
||||||
MODULE_VERSION(DRIVER_VERSION);
|
MODULE_VERSION(DRIVER_VERSION);
|
||||||
|
|
||||||
int mlx5_core_debug_mask;
|
unsigned int mlx5_core_debug_mask;
|
||||||
module_param_named(debug_mask, mlx5_core_debug_mask, int, 0644);
|
module_param_named(debug_mask, mlx5_core_debug_mask, uint, 0644);
|
||||||
MODULE_PARM_DESC(debug_mask, "debug mask: 1 = dump cmd data, 2 = dump cmd exec time, 3 = both. Default=0");
|
MODULE_PARM_DESC(debug_mask, "debug mask: 1 = dump cmd data, 2 = dump cmd exec time, 3 = both. Default=0");
|
||||||
|
|
||||||
#define MLX5_DEFAULT_PROF 2
|
#define MLX5_DEFAULT_PROF 2
|
||||||
static int prof_sel = MLX5_DEFAULT_PROF;
|
static unsigned int prof_sel = MLX5_DEFAULT_PROF;
|
||||||
module_param_named(prof_sel, prof_sel, int, 0444);
|
module_param_named(prof_sel, prof_sel, uint, 0444);
|
||||||
MODULE_PARM_DESC(prof_sel, "profile selector. Valid range 0 - 2");
|
MODULE_PARM_DESC(prof_sel, "profile selector. Valid range 0 - 2");
|
||||||
|
|
||||||
enum {
|
enum {
|
||||||
@ -1227,13 +1227,6 @@ static int init_one(struct pci_dev *pdev,
|
|||||||
|
|
||||||
dev->pdev = pdev;
|
dev->pdev = pdev;
|
||||||
dev->event = mlx5_core_event;
|
dev->event = mlx5_core_event;
|
||||||
|
|
||||||
if (prof_sel < 0 || prof_sel >= ARRAY_SIZE(profile)) {
|
|
||||||
mlx5_core_warn(dev,
|
|
||||||
"selected profile out of range, selecting default (%d)\n",
|
|
||||||
MLX5_DEFAULT_PROF);
|
|
||||||
prof_sel = MLX5_DEFAULT_PROF;
|
|
||||||
}
|
|
||||||
dev->profile = &profile[prof_sel];
|
dev->profile = &profile[prof_sel];
|
||||||
|
|
||||||
INIT_LIST_HEAD(&priv->ctx_list);
|
INIT_LIST_HEAD(&priv->ctx_list);
|
||||||
@ -1450,10 +1443,22 @@ static struct pci_driver mlx5_core_driver = {
|
|||||||
.sriov_configure = mlx5_core_sriov_configure,
|
.sriov_configure = mlx5_core_sriov_configure,
|
||||||
};
|
};
|
||||||
|
|
||||||
|
static void mlx5_core_verify_params(void)
|
||||||
|
{
|
||||||
|
if (prof_sel >= ARRAY_SIZE(profile)) {
|
||||||
|
pr_warn("mlx5_core: WARNING: Invalid module parameter prof_sel %d, valid range 0-%zu, changing back to default(%d)\n",
|
||||||
|
prof_sel,
|
||||||
|
ARRAY_SIZE(profile) - 1,
|
||||||
|
MLX5_DEFAULT_PROF);
|
||||||
|
prof_sel = MLX5_DEFAULT_PROF;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
static int __init init(void)
|
static int __init init(void)
|
||||||
{
|
{
|
||||||
int err;
|
int err;
|
||||||
|
|
||||||
|
mlx5_core_verify_params();
|
||||||
mlx5_register_debugfs();
|
mlx5_register_debugfs();
|
||||||
|
|
||||||
err = pci_register_driver(&mlx5_core_driver);
|
err = pci_register_driver(&mlx5_core_driver);
|
||||||
|
@ -44,7 +44,7 @@
|
|||||||
|
|
||||||
#define MLX5_TOTAL_VPORTS(mdev) (1 + pci_sriov_get_totalvfs(mdev->pdev))
|
#define MLX5_TOTAL_VPORTS(mdev) (1 + pci_sriov_get_totalvfs(mdev->pdev))
|
||||||
|
|
||||||
extern int mlx5_core_debug_mask;
|
extern uint mlx5_core_debug_mask;
|
||||||
|
|
||||||
#define mlx5_core_dbg(__dev, format, ...) \
|
#define mlx5_core_dbg(__dev, format, ...) \
|
||||||
dev_dbg(&(__dev)->pdev->dev, "%s:%s:%d:(pid %d): " format, \
|
dev_dbg(&(__dev)->pdev->dev, "%s:%s:%d:(pid %d): " format, \
|
||||||
|
Loading…
Reference in New Issue
Block a user