linux/drivers/infiniband/hw/mthca
Michael S. Tsirkin 062dbb69f3 IB: Return qp pointer as part of ib_wc
struct ib_wc currently only includes the local QP number: this matches
the IB spec, but seems mostly useless. The following patch replaces
this with the pointer to qp itself, and updates all low level drivers
and all users.

This has the following advantages:
- Ability to get a per-qp context through wc->qp->qp_context
- Existing drivers already have the qp pointer ready in poll cq, so
  this change actually saves a tiny bit (extra memory read) on data path
  (for ehca it would actually be expensive to find the QP pointer when
  polling a CQ, but ehca does not support SRQ so we can leave wc->qp as
  NULL for ehca)
- Users that need the QP number can still get it through wc->qp->qp_num

Use case:

In IPoIB connected mode code, I have a common CQ shared by multiple
QPs.  To track connection usage, I need a way to get at some per-QP
context upon the completion, and I would like to avoid allocating
context object per work request just to stick a QP pointer into it.
With this code, I can just use wc->qp->qp_context.

Signed-off-by: Michael S. Tsirkin <mst@mellanox.co.il>
Signed-off-by: Roland Dreier <rolandd@cisco.com>
2007-02-04 14:11:55 -08:00
..
Kconfig IB/mthca: Always build debugging code unless CONFIG_EMBEDDED=y 2006-04-02 14:39:20 -07:00
Makefile IB/mthca: Always build debugging code unless CONFIG_EMBEDDED=y 2006-04-02 14:39:20 -07:00
mthca_allocator.c IB/mthca: Use IRQ safe locks to protect allocation bitmaps 2006-08-31 17:25:56 -07:00
mthca_av.c [PATCH] slab: remove SLAB_ATOMIC 2006-12-07 08:39:24 -08:00
mthca_catas.c WorkStruct: make allyesconfig 2006-11-22 14:57:56 +00:00
mthca_cmd.c IB: Return qp pointer as part of ib_wc 2007-02-04 14:11:55 -08:00
mthca_cmd.h IB: simplify static rate encoding 2006-04-10 09:43:47 -07:00
mthca_config_reg.h [PATCH] IB: Add copyright notices 2005-08-26 20:37:35 -07:00
mthca_cq.c IB: Return qp pointer as part of ib_wc 2007-02-04 14:11:55 -08:00
mthca_dev.h IB/mthca: Recover from catastrophic errors 2006-09-22 15:22:54 -07:00
mthca_doorbell.h [PATCH] IB: sparse endianness cleanup 2005-08-26 20:37:35 -07:00
mthca_eq.c IB/mthca: Fix section mismatches 2006-11-29 15:33:06 -08:00
mthca_mad.c IB/mthca: Fix section mismatches 2006-11-29 15:33:06 -08:00
mthca_main.c IB/mthca: Use DEFINE_MUTEX() instead of mutex_init() 2006-12-15 20:55:28 -08:00
mthca_mcg.c IB/mthca: Fix section mismatches 2006-11-29 15:33:06 -08:00
mthca_memfree.c IB/mthca: Fix off-by-one in FMR handling on memfree 2007-01-04 19:46:32 -08:00
mthca_memfree.h IB/mthca: Use an enum for HCA page size 2006-03-20 10:08:19 -08:00
mthca_mr.c IB/mthca: Fix section mismatches 2006-11-29 15:33:06 -08:00
mthca_pd.c IB/mthca: Fix section mismatches 2006-11-29 15:33:06 -08:00
mthca_profile.c IB/mthca: Optimize large messages on Sinai HCAs 2006-03-20 10:08:22 -08:00
mthca_profile.h [PATCH] IB/mthca: Add SRQ implementation 2005-08-26 20:37:37 -07:00
mthca_provider.c [PATCH] IB/mthca: Fix FMR breakage caused by kmemdup() conversion 2006-12-30 10:55:55 -08:00
mthca_provider.h IB/mthca: Fix potential AB-BA deadlock with CQ locks 2006-08-11 08:56:57 -07:00
mthca_qp.c IB/mthca: Don't execute QUERY_QP firmware command for QP in RESET state 2007-01-09 14:14:28 -08:00
mthca_reset.c Remove obsolete #include <linux/config.h> 2006-06-30 19:25:36 +02:00
mthca_srq.c [PATCH] LOG2: Implement a general integer log2 facility in the kernel 2006-12-08 08:28:51 -08:00
mthca_uar.c IB/mthca: Don't use privileged UAR for kernel access 2006-09-22 15:17:18 -07:00
mthca_user.h IB/mthca: Add device-specific support for resizing CQs 2006-03-20 10:08:08 -08:00
mthca_wqe.h IB/mthca: fix posting of send lists of length >= 255 on mem-free HCAs 2005-11-29 11:33:46 -08:00