svn commit: r312878 - head/sys/dev/mlx5/mlx5_core
Hans Petter Selasky
hselasky at FreeBSD.org
Fri Jan 27 10:56:04 UTC 2017
Author: hselasky
Date: Fri Jan 27 10:56:03 2017
New Revision: 312878
URL: https://svnweb.freebsd.org/changeset/base/312878
Log:
Fix command completion with callback scenario.
MFC after: 1 week
Sponsored by: Mellanox Technologies
Modified:
head/sys/dev/mlx5/mlx5_core/mlx5_cmd.c
Modified: head/sys/dev/mlx5/mlx5_core/mlx5_cmd.c
==============================================================================
--- head/sys/dev/mlx5/mlx5_core/mlx5_cmd.c Fri Jan 27 10:47:53 2017 (r312877)
+++ head/sys/dev/mlx5/mlx5_core/mlx5_cmd.c Fri Jan 27 10:56:03 2017 (r312878)
@@ -723,6 +723,9 @@ static void complete_command(struct mlx5
struct mlx5_cmd *cmd = ent->cmd;
struct mlx5_core_dev *dev = container_of(cmd, struct mlx5_core_dev,
cmd);
+ mlx5_cmd_cbk_t callback;
+ void *context;
+
s64 ds;
struct mlx5_cmd_stats *stats;
unsigned long flags;
@@ -744,6 +747,8 @@ static void complete_command(struct mlx5
spin_unlock_irqrestore(&stats->lock, flags);
}
+ callback = ent->callback;
+ context = ent->context;
err = ent->ret;
if (!err)
err = mlx5_copy_from_msg(ent->uout,
@@ -754,7 +759,7 @@ static void complete_command(struct mlx5
free_msg(dev, ent->in);
free_cmd(ent);
- ent->callback(err, ent->context);
+ callback(err, context);
} else {
complete(&ent->done);
}
More information about the svn-src-all
mailing list