diff options
author | Roland Dreier <roland@purestorage.com> | 2012-04-16 15:13:24 -0400 |
---|---|---|
committer | Roland Dreier <roland@purestorage.com> | 2012-05-08 14:17:48 -0400 |
commit | e9db29534d2bc7c5e24f0fdd4beff9001517d785 (patch) | |
tree | 24354881e6c4ecd464c5668bfeeb2cdb0ae18259 /drivers/infiniband | |
parent | abe3afacc5762065244421569ad86afef11813bb (diff) |
RDMA/ocrdma: Set event's device member in ocrdma_dispatch_ibevent()
We need to set ib_evt.device, or else ib_dispatch_event() will crash
when we call it for unaffiliated events (and consumers may get
confused in their QP/CQ/SRQ event handler for affiliated events).
Also fix sparse warning:
drivers/infiniband/hw/ocrdma/ocrdma_hw.c:678:36: warning: Using plain integer as NULL pointer
There's no need to clear ib_evt, since every member is initialized.
Signed-off-by: Roland Dreier <roland@purestorage.com>
Diffstat (limited to 'drivers/infiniband')
-rw-r--r-- | drivers/infiniband/hw/ocrdma/ocrdma_hw.c | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/drivers/infiniband/hw/ocrdma/ocrdma_hw.c b/drivers/infiniband/hw/ocrdma/ocrdma_hw.c index 00a460e04be..5af30f131de 100644 --- a/drivers/infiniband/hw/ocrdma/ocrdma_hw.c +++ b/drivers/infiniband/hw/ocrdma/ocrdma_hw.c | |||
@@ -675,7 +675,7 @@ static void ocrdma_dispatch_ibevent(struct ocrdma_dev *dev, | |||
675 | { | 675 | { |
676 | struct ocrdma_qp *qp = NULL; | 676 | struct ocrdma_qp *qp = NULL; |
677 | struct ocrdma_cq *cq = NULL; | 677 | struct ocrdma_cq *cq = NULL; |
678 | struct ib_event ib_evt = { 0 }; | 678 | struct ib_event ib_evt; |
679 | int cq_event = 0; | 679 | int cq_event = 0; |
680 | int qp_event = 1; | 680 | int qp_event = 1; |
681 | int srq_event = 0; | 681 | int srq_event = 0; |
@@ -688,6 +688,8 @@ static void ocrdma_dispatch_ibevent(struct ocrdma_dev *dev, | |||
688 | if (cqe->cqvalid_cqid & OCRDMA_AE_MCQE_CQVALID) | 688 | if (cqe->cqvalid_cqid & OCRDMA_AE_MCQE_CQVALID) |
689 | cq = dev->cq_tbl[cqe->cqvalid_cqid & OCRDMA_AE_MCQE_CQID_MASK]; | 689 | cq = dev->cq_tbl[cqe->cqvalid_cqid & OCRDMA_AE_MCQE_CQID_MASK]; |
690 | 690 | ||
691 | ib_evt.device = &dev->ibdev; | ||
692 | |||
691 | switch (type) { | 693 | switch (type) { |
692 | case OCRDMA_CQ_ERROR: | 694 | case OCRDMA_CQ_ERROR: |
693 | ib_evt.element.cq = &cq->ibcq; | 695 | ib_evt.element.cq = &cq->ibcq; |