linux/drivers/infiniband/core
Roland Dreier 0f39cf3d54 IB/core: Add support for "send with invalidate" work requests
Add a new IB_WR_SEND_WITH_INV send opcode that can be used to mark a
"send with invalidate" work request as defined in the iWARP verbs and
the InfiniBand base memory management extensions.  Also put "imm_data"
and a new "invalidate_rkey" member in a new "ex" union in struct
ib_send_wr. The invalidate_rkey member can be used to pass in an
R_Key/STag to be invalidated.  Add this new union to struct
ib_uverbs_send_wr.  Add code to copy the invalidate_rkey field in
ib_uverbs_post_send().

Fix up low-level drivers to deal with the change to struct ib_send_wr,
and just remove the imm_data initialization from net/sunrpc/xprtrdma/,
since that code never does any send with immediate operations.

Also, move the existing IB_DEVICE_SEND_W_INV flag to a new bit, since
the iWARP drivers currently in the tree set the bit.  The amso1100
driver at least will silently fail to honor the IB_SEND_INVALIDATE bit
if passed in as part of userspace send requests (since it does not
implement kernel bypass work request queueing).  Remove the flag from
all existing drivers that set it until we know which ones are OK.

The values chosen for the new flag is not consecutive to avoid clashing
with flags defined in the XRC patches, which are not merged yet but
which are already in use and are likely to be merged soon.

This resurrects a patch sent long ago by Mikkel Hagen <mhagen@iol.unh.edu>.

Signed-off-by: Roland Dreier <rolandd@cisco.com>
2008-04-16 21:09:32 -07:00
..
addr.c trivial endianness annotations: infiniband core 2008-03-30 14:20:24 -07:00
agent.c IB/mad: agent_send_response() should be void 2007-08-03 10:45:17 -07:00
agent.h IB/mad: agent_send_response() should be void 2007-08-03 10:45:17 -07:00
cache.c Detach sched.h from mm.h 2007-05-21 09:18:19 -07:00
cm_msgs.h IB/cm: cm_msgs.h should include ib_cm.h 2007-07-10 21:50:53 -07:00
cm.c IB/cm: Endianness annotations 2008-04-16 21:01:07 -07:00
cma.c RDMA/iwcm: Test rdma_create_id() for IS_ERR rather than 0 2008-04-16 21:09:25 -07:00
core_priv.h
device.c IB: find_first_zero_bit() takes unsigned pointer 2007-10-09 19:59:04 -07:00
fmr_pool.c IB: Use shorter list_splice_init() for brevity 2008-04-16 21:09:26 -07:00
iwcm.c RDMA/iwcm: Don't access a cm_id after dropping reference 2008-03-10 21:22:22 -07:00
iwcm.h RDMA: iWARP Connection Manager. 2006-09-22 15:22:46 -07:00
mad_priv.h IB/mad: Report number of times a mad was retried 2008-01-25 14:15:30 -08:00
mad_rmpp.c IB/mad: Report number of times a mad was retried 2008-01-25 14:15:30 -08:00
mad_rmpp.h
mad.c IB/mad: Fix incorrect access to items on local_list 2008-01-25 14:15:31 -08:00
Makefile IB/uverbs: Export ib_umem_get()/ib_umem_release() to modules 2007-05-08 18:00:37 -07:00
multicast.c IB/multicast: Report errors on multicast groups if P_key changes 2008-01-25 14:15:29 -08:00
packer.c [PATCH] fix remaining missing includes 2005-11-07 07:53:41 -08:00
sa_query.c IB/sa: Add new QoS fields to path record 2007-10-09 19:59:12 -07:00
sa.h IB: Remove garbage non-ASCII characters from comments 2007-07-09 16:17:32 -07:00
smi.c IB/mad: Enhance SMI for switch support 2007-07-09 16:17:32 -07:00
smi.h IB/mad: Enable loopback of DR SMP responses from userspace 2008-01-25 14:15:25 -08:00
sysfs.c IB: Fix return value in ib_device_register_sysfs() 2008-02-15 15:05:05 -08:00
ucm.c IB/cm: Add basic performance counters 2008-01-25 14:15:30 -08:00
ucma.c RDMA/ucma: Endian annotation 2008-04-16 21:01:07 -07:00
ud_header.c [PATCH] fix remaining missing includes 2005-11-07 07:53:41 -08:00
umem.c SG: Change sg_set_page() to take length and offset argument 2007-10-24 11:20:47 +02:00
user_mad.c IB/umad: Simplify and fix locking 2008-01-25 14:15:42 -08:00
uverbs_cmd.c IB/core: Add support for "send with invalidate" work requests 2008-04-16 21:09:32 -07:00
uverbs_main.c IB/uverbs: Use alloc_file() instead of get_empty_filp() 2008-04-16 21:01:08 -07:00
uverbs_marshall.c RDMA/cma: Export rdma cm interface to userspace 2006-12-12 11:50:22 -08:00
uverbs.h IB/uverbs: Don't store struct file * for event files 2008-04-16 21:01:08 -07:00
verbs.c IB/core: Check optional verbs before using them 2008-04-16 21:09:28 -07:00