git: 431980466ff0 - main - Don't offset the UAR map twice in mlx5en(4).

Hans Petter Selasky hselasky at FreeBSD.org
Fri Jan 8 17:37:22 UTC 2021


The branch main has been updated by hselasky:

URL: https://cgit.FreeBSD.org/src/commit/?id=431980466ff05947975cae6a85188b6a54c05939

commit 431980466ff05947975cae6a85188b6a54c05939
Author:     Hans Petter Selasky <hselasky at FreeBSD.org>
AuthorDate: 2021-01-08 17:32:16 +0000
Commit:     Hans Petter Selasky <hselasky at FreeBSD.org>
CommitDate: 2021-01-08 17:35:49 +0000

    Don't offset the UAR map twice in mlx5en(4).
    
    The new UAR API already offsets the UAR map pointer the mlx5en(4) is using.
    While at it remove some no longer needed variables for keeping track
    of the current BF offset.
    
    This fixes a regression issue after the new UAR allocation APIs
    were introduced.
    
    MFC after: 1 week
    Sponsored by: Mellanox Technologies // NVIDIA Networking
---
 sys/dev/mlx5/mlx5_en/en.h           | 8 +-------
 sys/dev/mlx5/mlx5_en/mlx5_en_main.c | 1 -
 sys/dev/mlx5/mlx5_en/mlx5_en_rl.c   | 5 -----
 3 files changed, 1 insertion(+), 13 deletions(-)

diff --git a/sys/dev/mlx5/mlx5_en/en.h b/sys/dev/mlx5/mlx5_en/en.h
index b7c05264008a..b990bb754962 100644
--- a/sys/dev/mlx5/mlx5_en/en.h
+++ b/sys/dev/mlx5/mlx5_en/en.h
@@ -807,7 +807,6 @@ struct mlx5e_sq {
 
 	/* dirtied @xmit */
 	u16	pc __aligned(MLX5E_CACHELINE_SIZE);
-	u16	bf_offset;
 	u16	cev_counter;		/* completion event counter */
 	u16	cev_factor;		/* completion event factor */
 	u16	cev_next_state;		/* next completion event state */
@@ -830,7 +829,6 @@ struct mlx5e_sq {
 	void __iomem *uar_map;
 	struct	ifnet *ifp;
 	u32	sqn;
-	u32	bf_buf_size;
 	u32	mkey_be;
 	u16	max_inline;
 	u8	min_inline_mode;
@@ -1130,8 +1128,6 @@ void	mlx5e_del_all_vlan_rules(struct mlx5e_priv *priv);
 static inline void
 mlx5e_tx_notify_hw(struct mlx5e_sq *sq, u32 *wqe)
 {
-	u16 ofst = MLX5_BF_OFFSET + sq->bf_offset;
-
 	/* ensure wqe is visible to device before updating doorbell record */
 	wmb();
 
@@ -1143,10 +1139,8 @@ mlx5e_tx_notify_hw(struct mlx5e_sq *sq, u32 *wqe)
 	 */
 	wmb();
 
-	mlx5_write64(wqe, sq->uar_map + ofst,
+	mlx5_write64(wqe, sq->uar_map,
 	    MLX5_GET_DOORBELL_LOCK(&sq->priv->doorbell_lock));
-
-	sq->bf_offset ^= sq->bf_buf_size;
 }
 
 static inline void
diff --git a/sys/dev/mlx5/mlx5_en/mlx5_en_main.c b/sys/dev/mlx5/mlx5_en/mlx5_en_main.c
index 9fc3af186c0d..0d4028e240ca 100644
--- a/sys/dev/mlx5/mlx5_en/mlx5_en_main.c
+++ b/sys/dev/mlx5/mlx5_en/mlx5_en_main.c
@@ -1668,7 +1668,6 @@ mlx5e_create_sq(struct mlx5e_channel *c,
 		goto err_free_dma_tag;
 
 	sq->wq.db = &sq->wq.db[MLX5_SND_DBR];
-	sq->bf_buf_size = (1 << MLX5_CAP_GEN(mdev, log_bf_reg_size)) / 2;
 
 	err = mlx5e_alloc_sq_db(sq);
 	if (err)
diff --git a/sys/dev/mlx5/mlx5_en/mlx5_en_rl.c b/sys/dev/mlx5/mlx5_en/mlx5_en_rl.c
index 7291253b8168..95fb59726e24 100644
--- a/sys/dev/mlx5/mlx5_en/mlx5_en_rl.c
+++ b/sys/dev/mlx5/mlx5_en/mlx5_en_rl.c
@@ -124,11 +124,6 @@ mlx5e_rl_create_sq(struct mlx5e_priv *priv, struct mlx5e_sq *sq,
 		goto err_free_dma_tag;
 
 	sq->wq.db = &sq->wq.db[MLX5_SND_DBR];
-	/*
-	 * The sq->bf_buf_size variable is intentionally left zero so
-	 * that the doorbell writes will occur at the same memory
-	 * location.
-	 */
 
 	err = mlx5e_alloc_sq_db(sq);
 	if (err)


More information about the dev-commits-src-all mailing list