IB/mlx5: Expose correct max_sge_rd limit
authorSagi Grimberg <sagi@grimberg.me>
Thu, 31 Mar 2016 16:03:25 +0000 (19:03 +0300)
committerDoug Ledford <dledford@redhat.com>
Thu, 28 Apr 2016 14:49:17 +0000 (10:49 -0400)
commit986ef95ecdd3eb6fa29433e68faa94c7624083be
tree1b0d6700daf564a1507f8c3226678cf7044d488a
parent32cc92c7b5e52357a0a24010bae9eb257fa75d3e
IB/mlx5: Expose correct max_sge_rd limit

mlx5 devices (Connect-IB, ConnectX-4, ConnectX-4-LX) has a limitation
where rdma read work queue entries cannot exceed 512 bytes.
A rdma_read wqe needs to fit in 512 bytes:
- wqe control segment (16 bytes)
- rdma segment (16 bytes)
- scatter elements (16 bytes each)

So max_sge_rd should be: (512 - 16 - 16) / 16 = 30.

Cc: linux-stable@vger.kernel.org
Reported-by: Christoph Hellwig <hch@lst.de>
Tested-by: Christoph Hellwig <hch@lst.de>
Signed-off-by: Sagi Grimberg <sagig@grimberg.me>
Signed-off-by: Leon Romanovsky <leonro@mellanox.com>
Signed-off-by: Doug Ledford <dledford@redhat.com>
drivers/infiniband/hw/mlx5/main.c
include/linux/mlx5/device.h