]> git.proxmox.com Git - mirror_ubuntu-focal-kernel.git/commit - drivers/infiniband/hw/hfi1/tid_rdma.c
IB/hfi1: Add interlock between a TID RDMA request and other requests
authorKaike Wan <kaike.wan@intel.com>
Thu, 24 Jan 2019 14:36:48 +0000 (06:36 -0800)
committerDoug Ledford <dledford@redhat.com>
Tue, 5 Feb 2019 22:53:55 +0000 (17:53 -0500)
commita0b34f75ec209e40f06912380533ec525691544f
treefc11bed576ed43e217c7719d88623d311d825aa4
parent24b11923da4c7dbf5690d3ac74710affaf564196
IB/hfi1: Add interlock between a TID RDMA request and other requests

This locking mechanism is designed to provent vavious memory corruption
scenarios from occurring when requests are pipelined, especially when
RDMA READ/WRITE requests are interleaved with TID RDMA READ/WRITE
requests:
1. READ-AFTER-READ;
2. READ-AFTER-WRITE;
3. WRITE-AFTER-READ;
When memory corruption is likely, a request will be held back until
previous requests have been completed.

Reviewed-by: Mike Marciniszyn <mike.marciniszyn@intel.com>
Signed-off-by: Mitko Haralanov <mitko.haralanov@intel.com>
Signed-off-by: Kaike Wan <kaike.wan@intel.com>
Signed-off-by: Dennis Dalessandro <dennis.dalessandro@intel.com>
Signed-off-by: Doug Ledford <dledford@redhat.com>
drivers/infiniband/hw/hfi1/rc.c
drivers/infiniband/hw/hfi1/tid_rdma.c
drivers/infiniband/hw/hfi1/tid_rdma.h
drivers/infiniband/hw/hfi1/verbs.h