linux-kernel-test/drivers/infiniband/hw/ehca
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
..
ehca_av.c [PATCH] slab: remove SLAB_KERNEL 2006-12-07 08:39:24 -08:00
ehca_classes_pSeries.h IB/ehca: Add driver for IBM eHCA InfiniBand adapters 2006-09-22 15:22:22 -07:00
ehca_classes.h IB/ehca: Add driver for IBM eHCA InfiniBand adapters 2006-09-22 15:22:22 -07:00
ehca_cq.c IB/ehca: Fix improper use of yield() with spinlock held 2007-01-22 17:03:55 -08:00
ehca_eq.c IB/ehca: Add driver for IBM eHCA InfiniBand adapters 2006-09-22 15:22:22 -07:00
ehca_hca.c IB/ehca: Use proper GFP_ flags for get_zeroed_page() 2007-01-09 14:14:24 -08:00
ehca_irq.c IB/ehca: Fix mismatched spin_unlock in irq handler 2007-01-22 17:03:55 -08:00
ehca_irq.h IRQ: Maintain regs pointer globally rather than passing to IRQ handlers 2006-10-05 15:10:12 +01:00
ehca_iverbs.h IB/ehca: Use proper GFP_ flags for get_zeroed_page() 2007-01-09 14:14:24 -08:00
ehca_main.c IB/ehca: Use proper GFP_ flags for get_zeroed_page() 2007-01-09 14:14:24 -08:00
ehca_mcast.c IB/ehca: Add driver for IBM eHCA InfiniBand adapters 2006-09-22 15:22:22 -07:00
ehca_mrmw.c IB/ehca: Use proper GFP_ flags for get_zeroed_page() 2007-01-09 14:14:24 -08:00
ehca_mrmw.h IB/ehca: Add driver for IBM eHCA InfiniBand adapters 2006-09-22 15:22:22 -07:00
ehca_pd.c [PATCH] slab: remove SLAB_KERNEL 2006-12-07 08:39:24 -08:00
ehca_qes.h IB/ehca: Add driver for IBM eHCA InfiniBand adapters 2006-09-22 15:22:22 -07:00
ehca_qp.c IB/ehca: Use proper GFP_ flags for get_zeroed_page() 2007-01-09 14:14:24 -08:00
ehca_reqs.c IB: Return qp pointer as part of ib_wc 2007-02-04 14:11:55 -08:00
ehca_sqp.c IB/ehca: Add driver for IBM eHCA InfiniBand adapters 2006-09-22 15:22:22 -07:00
ehca_tools.h IB/ehca: Fix eHCA driver compilation for uniprocessor 2006-10-30 20:52:51 -08:00
ehca_uverbs.c IB/ehca: Add driver for IBM eHCA InfiniBand adapters 2006-09-22 15:22:22 -07:00
hcp_if.c IB/ehca: Add driver for IBM eHCA InfiniBand adapters 2006-09-22 15:22:22 -07:00
hcp_if.h IB/ehca: Add driver for IBM eHCA InfiniBand adapters 2006-09-22 15:22:22 -07:00
hcp_phyp.c IB/ehca: Add driver for IBM eHCA InfiniBand adapters 2006-09-22 15:22:22 -07:00
hcp_phyp.h IB/ehca: Add driver for IBM eHCA InfiniBand adapters 2006-09-22 15:22:22 -07:00
hipz_fns_core.h IB/ehca: Add driver for IBM eHCA InfiniBand adapters 2006-09-22 15:22:22 -07:00
hipz_fns.h IB/ehca: Add driver for IBM eHCA InfiniBand adapters 2006-09-22 15:22:22 -07:00
hipz_hw.h IB/ehca: Use named constant for max mtu 2006-11-13 08:46:28 -08:00
ipz_pt_fn.c IB/ehca: Use WQE offset instead of WQE addr for pending work reqs 2006-11-29 15:33:08 -08:00
ipz_pt_fn.h IB/ehca: Use WQE offset instead of WQE addr for pending work reqs 2006-11-29 15:33:08 -08:00
Kconfig IB/ehca: Activate scaling code by default 2006-11-13 08:46:28 -08:00
Makefile IB/ehca: Add driver for IBM eHCA InfiniBand adapters 2006-09-22 15:22:22 -07:00