RDMA/mlx5: Split the WR setup out of mlx5_ib_update_xlt()
authorJason Gunthorpe <jgg@nvidia.com>
Mon, 26 Oct 2020 13:23:12 +0000 (15:23 +0200)
committerJason Gunthorpe <jgg@nvidia.com>
Mon, 2 Nov 2020 18:53:55 +0000 (14:53 -0400)
commit8010d74b9965b33182651767e9788ed84cf8e5f9
treee429f440b8350b0869f4244ee37c9dc644ccfb0c
parentf22c30aa6d27597a6da665db1a5f099e4903ecc7
RDMA/mlx5: Split the WR setup out of mlx5_ib_update_xlt()

The memory allocation is quite complicated, and makes this function hard
to understand. Refactor things so that a function call sets up the WR, SG,
DMA mapping and buffer, further splitting that into buffer and DMA/wr.

This also slightly changes the buffer allocation logic to try an order 0
page allocation (with OOM warnings on) before going to the emergency page.

Link: https://lore.kernel.org/r/20201026132314.1336717-4-leon@kernel.org
Signed-off-by: Leon Romanovsky <leonro@nvidia.com>
Signed-off-by: Jason Gunthorpe <jgg@nvidia.com>
drivers/infiniband/hw/mlx5/main.c
drivers/infiniband/hw/mlx5/mlx5_ib.h
drivers/infiniband/hw/mlx5/mr.c