You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
91 lines
2.8 KiB
91 lines
2.8 KiB
From 2efdd509f52493cf944fe5bfb180843b77267924 Mon Sep 17 00:00:00 2001
|
|
From: Alaa Hleihel <ahleihel@redhat.com>
|
|
Date: Sun, 10 May 2020 15:04:44 -0400
|
|
Subject: [PATCH 119/312] [netdrv] net/mlx5: Move devlink registration before
|
|
interfaces load
|
|
|
|
Message-id: <20200510150452.10307-80-ahleihel@redhat.com>
|
|
Patchwork-id: 306703
|
|
Patchwork-instance: patchwork
|
|
O-Subject: [RHEL8.3 BZ 1789380 v2 79/87] net/mlx5: Move devlink registration before interfaces load
|
|
Bugzilla: 1789380
|
|
RH-Acked-by: Kamal Heib <kheib@redhat.com>
|
|
RH-Acked-by: Jarod Wilson <jarod@redhat.com>
|
|
RH-Acked-by: Tony Camuso <tcamuso@redhat.com>
|
|
RH-Acked-by: Jonathan Toppins <jtoppins@redhat.com>
|
|
|
|
Bugzilla: http://bugzilla.redhat.com/1789380
|
|
Upstream: v5.5-rc6
|
|
|
|
commit a6f3b62386a02c1e94bfa22c543f82d63f5e631b
|
|
Author: Michael Guralnik <michaelgur@mellanox.com>
|
|
Date: Wed Nov 20 11:43:49 2019 +0200
|
|
|
|
net/mlx5: Move devlink registration before interfaces load
|
|
|
|
Register devlink before interfaces are added.
|
|
This will allow interfaces to use devlink while initalizing. For example,
|
|
call mlx5_is_roce_enabled.
|
|
|
|
Fixes: aba25279c100 ("net/mlx5e: Add TX reporter support")
|
|
Signed-off-by: Michael Guralnik <michaelgur@mellanox.com>
|
|
Signed-off-by: Saeed Mahameed <saeedm@mellanox.com>
|
|
|
|
Signed-off-by: Alaa Hleihel <ahleihel@redhat.com>
|
|
Signed-off-by: Frantisek Hrbata <fhrbata@redhat.com>
|
|
---
|
|
drivers/net/ethernet/mellanox/mlx5/core/main.c | 16 +++++++++-------
|
|
1 file changed, 9 insertions(+), 7 deletions(-)
|
|
|
|
diff --git a/drivers/net/ethernet/mellanox/mlx5/core/main.c b/drivers/net/ethernet/mellanox/mlx5/core/main.c
|
|
index 57e376e4e938..f34eeb5af1ef 100644
|
|
--- a/drivers/net/ethernet/mellanox/mlx5/core/main.c
|
|
+++ b/drivers/net/ethernet/mellanox/mlx5/core/main.c
|
|
@@ -1221,6 +1221,12 @@ static int mlx5_load_one(struct mlx5_core_dev *dev, bool boot)
|
|
if (err)
|
|
goto err_load;
|
|
|
|
+ if (boot) {
|
|
+ err = mlx5_devlink_register(priv_to_devlink(dev), dev->device);
|
|
+ if (err)
|
|
+ goto err_devlink_reg;
|
|
+ }
|
|
+
|
|
if (mlx5_device_registered(dev)) {
|
|
mlx5_attach_device(dev);
|
|
} else {
|
|
@@ -1238,6 +1244,9 @@ static int mlx5_load_one(struct mlx5_core_dev *dev, bool boot)
|
|
return err;
|
|
|
|
err_reg_dev:
|
|
+ if (boot)
|
|
+ mlx5_devlink_unregister(priv_to_devlink(dev));
|
|
+err_devlink_reg:
|
|
mlx5_unload(dev);
|
|
err_load:
|
|
if (boot)
|
|
@@ -1375,10 +1384,6 @@ static int init_one(struct pci_dev *pdev, const struct pci_device_id *id)
|
|
|
|
request_module_nowait(MLX5_IB_MOD);
|
|
|
|
- err = mlx5_devlink_register(devlink, &pdev->dev);
|
|
- if (err)
|
|
- goto clean_load;
|
|
-
|
|
err = mlx5_crdump_enable(dev);
|
|
if (err)
|
|
dev_err(&pdev->dev, "mlx5_crdump_enable failed with error code %d\n", err);
|
|
@@ -1386,9 +1391,6 @@ static int init_one(struct pci_dev *pdev, const struct pci_device_id *id)
|
|
pci_save_state(pdev);
|
|
return 0;
|
|
|
|
-clean_load:
|
|
- mlx5_unload_one(dev, true);
|
|
-
|
|
err_load_one:
|
|
mlx5_pci_close(dev);
|
|
pci_init_err:
|
|
--
|
|
2.13.6
|
|
|