alistair23-linux/drivers/infiniband
Kalderon, Michal 30bf066cd9 RDMA/qedr: Fix doorbell bar mapping for dpi > 1
Each user_context receives a separate dpi value and thus a different
address on the doorbell bar. The qedr_mmap function needs to validate
the address and map the doorbell bar accordingly.
The current implementation always checked against dpi=0 doorbell range
leading to a wrong mapping for doorbell bar. (It entered an else case
that mapped the address differently). qedr_mmap should only be used
for doorbells, so the else was actually wrong in the first place.
This only has an affect on arm architecture and not an issue on a
x86 based architecture.
This lead to doorbells not occurring on arm based systems and left
applications that use more than one dpi (or several applications
run simultaneously ) to hang.

Fixes: ac1b36e55a ("qedr: Add support for user context verbs")
Signed-off-by: Ariel Elior <Ariel.Elior@cavium.com>
Signed-off-by: Michal Kalderon <Michal.Kalderon@cavium.com>
Reviewed-by: Leon Romanovsky <leonro@mellanox.com>
Signed-off-by: Jason Gunthorpe <jgg@mellanox.com>
2018-05-23 15:12:14 -06:00
..
core IB/umem: Use the correct mm during ib_umem_release 2018-05-15 17:09:10 -06:00
hw RDMA/qedr: Fix doorbell bar mapping for dpi > 1 2018-05-23 15:12:14 -06:00
sw nvmet,rxe: defer ip datagram sending to tasklet 2018-05-09 10:39:51 -04:00
ulp IB: remove redundant INFINIBAND kconfig dependencies 2018-05-09 08:51:03 -04:00
Kconfig IB: make INFINIBAND_ADDR_TRANS configurable 2018-04-27 11:15:44 -04:00
Makefile