RDMA/cxgb3: Serialize calls to CQ's comp_handler
authorKumar Sanghvi <kumaras@chelsio.com>
Mon, 24 Oct 2011 15:50:22 +0000 (21:20 +0530)
committerRoland Dreier <roland@purestorage.com>
Mon, 31 Oct 2011 18:33:17 +0000 (11:33 -0700)
commitf7cc25d018f1e9af6767ee7774bbe83452e9fdf4
tree43d10d7038f8295b4ad92e938b0c705db5ce58b3
parent976d167615b64e14bc1491ca51d424e2ba9a5e84
RDMA/cxgb3: Serialize calls to CQ's comp_handler

iw_cxgb3 has a potential problem where a CQ's comp_handler can get
called simultaneously from different places in iw_cxgb3 driver.  This
does not comply with Documentation/infiniband/core_locking.txt, which
states that at a given point of time, there should be only one
callback per CQ should be active.

Such problem was reported by Parav Pandit <Parav.Pandit@Emulex.Com>
for iw_cxgb4 driver.  Based on discussion between Parav Pandit and
Steve Wise, this patch fixes the above problem by serializing the
calls to a CQ's comp_handler using a spin_lock.

Signed-off-by: Kumar Sanghvi <kumaras@chelsio.com>
Acked-by: Steve Wise <swise@opengridcomputing.com>
Signed-off-by: Roland Dreier <roland@purestorage.com>
drivers/infiniband/hw/cxgb3/iwch_ev.c
drivers/infiniband/hw/cxgb3/iwch_provider.c
drivers/infiniband/hw/cxgb3/iwch_provider.h
drivers/infiniband/hw/cxgb3/iwch_qp.c