summaryrefslogtreecommitdiff
path: root/drivers/infiniband/hw/hfi1/user_sdma.h
diff options
context:
space:
mode:
authorDean Luick <dean.luick@intel.com>2016-07-28 22:21:18 +0300
committerDoug Ledford <dledford@redhat.com>2016-08-03 05:46:21 +0300
commit7b3256e331270c7de43ccf3879b7c289cdc3ff28 (patch)
treed25b92680b6edc3572e4bffd046049c685846c8f /drivers/infiniband/hw/hfi1/user_sdma.h
parent9da7e9a711e6fbecd111b9873682480c77c64192 (diff)
downloadlinux-7b3256e331270c7de43ccf3879b7c289cdc3ff28.tar.xz
IB/hfi1: Fix user SDMA racy user request claim
The user SDMA in-use claim bit is in the structure that gets zeroed out once the claim is made. Move the request in-use flag into its own bit array and use that for atomic claims. This cleans up the claim code and removes any race possibility. Reviewed-by: Ira Weiny <ira.weiny@intel.com> Signed-off-by: Dean Luick <dean.luick@intel.com> Signed-off-by: Doug Ledford <dledford@redhat.com>
Diffstat (limited to 'drivers/infiniband/hw/hfi1/user_sdma.h')
-rw-r--r--drivers/infiniband/hw/hfi1/user_sdma.h1
1 files changed, 1 insertions, 0 deletions
diff --git a/drivers/infiniband/hw/hfi1/user_sdma.h b/drivers/infiniband/hw/hfi1/user_sdma.h
index b9240e351161..20ff846f318b 100644
--- a/drivers/infiniband/hw/hfi1/user_sdma.h
+++ b/drivers/infiniband/hw/hfi1/user_sdma.h
@@ -63,6 +63,7 @@ struct hfi1_user_sdma_pkt_q {
struct hfi1_devdata *dd;
struct kmem_cache *txreq_cache;
struct user_sdma_request *reqs;
+ unsigned long *req_in_use;
struct iowait busy;
unsigned state;
wait_queue_head_t wait;