diff options
author | Dean Luick <dean.luick@intel.com> | 2016-07-28 22:21:18 +0300 |
---|---|---|
committer | Doug Ledford <dledford@redhat.com> | 2016-08-03 05:46:21 +0300 |
commit | 7b3256e331270c7de43ccf3879b7c289cdc3ff28 (patch) | |
tree | d25b92680b6edc3572e4bffd046049c685846c8f /drivers/infiniband/hw/hfi1/user_sdma.h | |
parent | 9da7e9a711e6fbecd111b9873682480c77c64192 (diff) | |
download | linux-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.h | 1 |
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; |