remove dma_virt_ops v2

Christoph Hellwig
2020-11-06T18:20:17Z

Hi Jason,

this series switches the RDMA core to opencode the special case of
devices bypassing the DMA mapping in the RDMA ULPs. The virt ops
have caused a bit of trouble due to the P2P code node working with
them due to the fact that we'd do two dma mapping iterations for a
single I/O, but also are a bit of layering violation and lead to
more code than necessary.

Tested with nvme-rdma over rxe.

Note that the rds changes are untested, as I could not find any
simple rds test setup.

Changes since v2:
- simplify the INFINIBAND_VIRT_DMA dependencies
- add a ib_uses_virt_dma helper
- use ib_uses_virt_dma in nvmet-rdma to disable p2p for virt_dma devices
- use ib_dma_max_seg_size in umem
- stop using dmapool in rds

Changes since v1:
- disable software RDMA drivers for highmem configs
- update the PCI commit logs