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);
        }
_______________________________________________
svn-src-all@freebsd.org mailing list
https://lists.freebsd.org/mailman/listinfo/svn-src-all
To unsubscribe, send any mail to "svn-src-all-unsubscr...@freebsd.org"

Reply via email to