Skip to content

Commit

Permalink
IB/qib: Fix sparse RCU warnings in qib_keys.c
Browse files Browse the repository at this point in the history
Commit 8aac4cc ("IB/qib: RCU locking for MR validation") introduced
new sparse warnings in qib_keys.c.

Acked-by: Fengguang Wu <fengguang.wu@intel.com>
Signed-off-by: Mike Marciniszyn <mike.marciniszyn@intel.com>
Signed-off-by: Roland Dreier <roland@purestorage.com>
  • Loading branch information
Mike Marciniszyn authored and Roland Dreier committed Jul 10, 2012
1 parent 8aac4cc commit 7e23017
Show file tree
Hide file tree
Showing 2 changed files with 5 additions and 3 deletions.
4 changes: 3 additions & 1 deletion drivers/infiniband/hw/qib/qib_keys.c
Original file line number Diff line number Diff line change
Expand Up @@ -349,7 +349,9 @@ int qib_fast_reg_mr(struct qib_qp *qp, struct ib_send_wr *wr)
if (pd->user || rkey == 0)
goto bail;

mr = rkt->table[(rkey >> (32 - ib_qib_lkey_table_size))];
mr = rcu_dereference_protected(
rkt->table[(rkey >> (32 - ib_qib_lkey_table_size))],
lockdep_is_held(&rkt->lock));
if (unlikely(mr == NULL || qp->ibqp.pd != mr->pd))
goto bail;

Expand Down
4 changes: 2 additions & 2 deletions drivers/infiniband/hw/qib/qib_verbs.h
Original file line number Diff line number Diff line change
Expand Up @@ -650,7 +650,7 @@ struct qib_lkey_table {
u32 next; /* next unused index (speeds search) */
u32 gen; /* generation count */
u32 max; /* size of the table */
struct qib_mregion **table;
struct qib_mregion __rcu **table;
};

struct qib_opcode_stats {
Expand Down Expand Up @@ -732,7 +732,7 @@ struct qib_ibdev {
struct list_head pending_mmaps;
spinlock_t mmap_offset_lock; /* protect mmap_offset */
u32 mmap_offset;
struct qib_mregion *dma_mr;
struct qib_mregion __rcu *dma_mr;

/* QP numbers are shared by all IB ports */
struct qib_qpn_table qpn_table;
Expand Down

0 comments on commit 7e23017

Please sign in to comment.