Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 27 Jan 2017 10:56:03 +0000 (UTC)
From:      Hans Petter Selasky <hselasky@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org
Subject:   svn commit: r312878 - head/sys/dev/mlx5/mlx5_core
Message-ID:  <201701271056.v0RAu3iC043023@repo.freebsd.org>

next in thread | raw e-mail | index | archive | help
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);
 	}



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201701271056.v0RAu3iC043023>