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.
104 lines
3.7 KiB
104 lines
3.7 KiB
4 years ago
|
From ac0e05eab5ead240e977ff6b629bfddf78c5c2c6 Mon Sep 17 00:00:00 2001
|
||
|
From: Alaa Hleihel <ahleihel@redhat.com>
|
||
|
Date: Sun, 10 May 2020 14:51:35 -0400
|
||
|
Subject: [PATCH 015/312] [netdrv] net/mlx5e: Set tx reporter only on
|
||
|
successful creation
|
||
|
|
||
|
Message-id: <20200510145245.10054-13-ahleihel@redhat.com>
|
||
|
Patchwork-id: 306553
|
||
|
Patchwork-instance: patchwork
|
||
|
O-Subject: [RHEL8.3 BZ 1789378 v2 12/82] net/mlx5e: Set tx reporter only on successful creation
|
||
|
Bugzilla: 1789378
|
||
|
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/1789378
|
||
|
Upstream: v5.4-rc1
|
||
|
|
||
|
commit baf6dfdb10e9695637d72429159fd26fc36d30c3
|
||
|
Author: Aya Levin <ayal@mellanox.com>
|
||
|
Date: Mon Jun 24 19:34:42 2019 +0300
|
||
|
|
||
|
net/mlx5e: Set tx reporter only on successful creation
|
||
|
|
||
|
When failing to create tx reporter, don't set the reporter's pointer.
|
||
|
Creating a reporter is not mandatory for driver load, avoid
|
||
|
garbage/error pointer.
|
||
|
|
||
|
Signed-off-by: Aya Levin <ayal@mellanox.com>
|
||
|
Reviewed-by: Tariq Toukan <tariqt@mellanox.com>
|
||
|
Acked-by: Jiri Pirko <jiri@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/en/reporter_tx.c | 14 ++++++++------
|
||
|
drivers/net/ethernet/mellanox/mlx5/core/en_main.c | 2 +-
|
||
|
2 files changed, 9 insertions(+), 7 deletions(-)
|
||
|
|
||
|
diff --git a/drivers/net/ethernet/mellanox/mlx5/core/en/reporter_tx.c b/drivers/net/ethernet/mellanox/mlx5/core/en/reporter_tx.c
|
||
|
index 2b3d2292b8c5..d9116e77ef68 100644
|
||
|
--- a/drivers/net/ethernet/mellanox/mlx5/core/en/reporter_tx.c
|
||
|
+++ b/drivers/net/ethernet/mellanox/mlx5/core/en/reporter_tx.c
|
||
|
@@ -116,7 +116,7 @@ static int mlx5_tx_health_report(struct devlink_health_reporter *tx_reporter,
|
||
|
char *err_str,
|
||
|
struct mlx5e_tx_err_ctx *err_ctx)
|
||
|
{
|
||
|
- if (IS_ERR_OR_NULL(tx_reporter)) {
|
||
|
+ if (!tx_reporter) {
|
||
|
netdev_err(err_ctx->sq->channel->netdev, err_str);
|
||
|
return err_ctx->recover(err_ctx->sq);
|
||
|
}
|
||
|
@@ -288,25 +288,27 @@ static const struct devlink_health_reporter_ops mlx5_tx_reporter_ops = {
|
||
|
|
||
|
int mlx5e_tx_reporter_create(struct mlx5e_priv *priv)
|
||
|
{
|
||
|
+ struct devlink_health_reporter *reporter;
|
||
|
struct mlx5_core_dev *mdev = priv->mdev;
|
||
|
struct devlink *devlink = priv_to_devlink(mdev);
|
||
|
|
||
|
- priv->tx_reporter =
|
||
|
+ reporter =
|
||
|
devlink_health_reporter_create(devlink, &mlx5_tx_reporter_ops,
|
||
|
MLX5_REPORTER_TX_GRACEFUL_PERIOD,
|
||
|
true, priv);
|
||
|
- if (IS_ERR(priv->tx_reporter)) {
|
||
|
+ if (IS_ERR(reporter)) {
|
||
|
netdev_warn(priv->netdev,
|
||
|
"Failed to create tx reporter, err = %ld\n",
|
||
|
- PTR_ERR(priv->tx_reporter));
|
||
|
- return PTR_ERR(priv->tx_reporter);
|
||
|
+ PTR_ERR(reporter));
|
||
|
+ return PTR_ERR(reporter);
|
||
|
}
|
||
|
+ priv->tx_reporter = reporter;
|
||
|
return 0;
|
||
|
}
|
||
|
|
||
|
void mlx5e_tx_reporter_destroy(struct mlx5e_priv *priv)
|
||
|
{
|
||
|
- if (IS_ERR_OR_NULL(priv->tx_reporter))
|
||
|
+ if (!priv->tx_reporter)
|
||
|
return;
|
||
|
|
||
|
devlink_health_reporter_destroy(priv->tx_reporter);
|
||
|
diff --git a/drivers/net/ethernet/mellanox/mlx5/core/en_main.c b/drivers/net/ethernet/mellanox/mlx5/core/en_main.c
|
||
|
index 5be38cf34551..9ffcfa017d4f 100644
|
||
|
--- a/drivers/net/ethernet/mellanox/mlx5/core/en_main.c
|
||
|
+++ b/drivers/net/ethernet/mellanox/mlx5/core/en_main.c
|
||
|
@@ -2323,7 +2323,7 @@ int mlx5e_open_channels(struct mlx5e_priv *priv,
|
||
|
goto err_close_channels;
|
||
|
}
|
||
|
|
||
|
- if (!IS_ERR_OR_NULL(priv->tx_reporter))
|
||
|
+ if (priv->tx_reporter)
|
||
|
devlink_health_reporter_state_update(priv->tx_reporter,
|
||
|
DEVLINK_HEALTH_REPORTER_STATE_HEALTHY);
|
||
|
|
||
|
--
|
||
|
2.13.6
|
||
|
|