net/mlx4: fix Tx doorbell register unmap

Message ID 20190408182313.39182-1-yskoh@mellanox.com (mailing list archive)
State Accepted, archived
Delegated to: Shahaf Shuler
Headers
Series net/mlx4: fix Tx doorbell register unmap |

Checks

Context Check Description
ci/checkpatch success coding style OK
ci/Intel-compilation success Compilation OK
ci/mellanox-Performance-Testing success Performance Testing PASS
ci/intel-Performance-Testing success Performance Testing PASS

Commit Message

Yongseok Koh April 8, 2019, 6:23 p.m. UTC
  If rdma-core library doesn't support remapping UAR registers, the register
shouldn't be unmapped on device stop.

Fixes: 0203d33a1059 ("net/mlx4: support secondary process")

Signed-off-by: Yongseok Koh <yskoh@mellanox.com>
---
 drivers/net/mlx4/mlx4.c | 4 ++++
 1 file changed, 4 insertions(+)
  

Comments

Shahaf Shuler April 10, 2019, 6:58 a.m. UTC | #1
Monday, April 8, 2019 9:23 PM, Yongseok Koh:
> Subject: [dpdk-dev] [PATCH] net/mlx4: fix Tx doorbell register unmap
> 
> If rdma-core library doesn't support remapping UAR registers, the register
> shouldn't be unmapped on device stop.
> 
> Fixes: 0203d33a1059 ("net/mlx4: support secondary process")
> 
> Signed-off-by: Yongseok Koh <yskoh@mellanox.com>

Applied to next-net-mlx, thanks.
Ferruh - you may want to squash to the relevant commit.
  
Ferruh Yigit April 10, 2019, 5:50 p.m. UTC | #2
On 4/10/2019 7:58 AM, Shahaf Shuler wrote:
> Monday, April 8, 2019 9:23 PM, Yongseok Koh:
>> Subject: [dpdk-dev] [PATCH] net/mlx4: fix Tx doorbell register unmap
>>
>> If rdma-core library doesn't support remapping UAR registers, the register
>> shouldn't be unmapped on device stop.
>>
>> Fixes: 0203d33a1059 ("net/mlx4: support secondary process")
>>
>> Signed-off-by: Yongseok Koh <yskoh@mellanox.com>
> 
> Applied to next-net-mlx, thanks.
> Ferruh - you may want to squash to the relevant commit.
> 

I can't squash since the relevant commit already merged into main repo and part
of rc1, merged into next-net as it is.
  

Patch

diff --git a/drivers/net/mlx4/mlx4.c b/drivers/net/mlx4/mlx4.c
index 252658fc6a..9bca0ce9cd 100644
--- a/drivers/net/mlx4/mlx4.c
+++ b/drivers/net/mlx4/mlx4.c
@@ -314,8 +314,10 @@  static void
 mlx4_dev_stop(struct rte_eth_dev *dev)
 {
 	struct mlx4_priv *priv = dev->data->dev_private;
+#ifdef HAVE_IBV_MLX4_UAR_MMAP_OFFSET
 	const size_t page_size = sysconf(_SC_PAGESIZE);
 	int i;
+#endif
 
 	if (!priv->started)
 		return;
@@ -329,6 +331,7 @@  mlx4_dev_stop(struct rte_eth_dev *dev)
 	mlx4_flow_sync(priv, NULL);
 	mlx4_rxq_intr_disable(priv);
 	mlx4_rss_deinit(priv);
+#ifdef HAVE_IBV_MLX4_UAR_MMAP_OFFSET
 	for (i = 0; i != dev->data->nb_tx_queues; ++i) {
 		struct txq *txq;
 
@@ -338,6 +341,7 @@  mlx4_dev_stop(struct rte_eth_dev *dev)
 		munmap((void *)RTE_ALIGN_FLOOR((uintptr_t)txq->msq.db,
 					       page_size), page_size);
 	}
+#endif
 }
 
 /**