1
linux/drivers/infiniband/core
Sean Hefty 34816ad98e [IB] Fix MAD layer DMA mappings to avoid touching data buffer once mapped
The MAD layer was violating the DMA API by touching data buffers used
for sends after the DMA mapping was done.  This causes problems on
non-cache-coherent architectures, because the device doing DMA won't
see updates to the payload buffers that exist only in the CPU cache.

Fix this by having all MAD consumers use ib_create_send_mad() to
allocate their send buffers, and moving the DMA mapping into the MAD
layer so it can be done just before calling send (and after any
modifications of the send buffer by the MAD layer).

Tested on a non-cache-coherent PowerPC 440SPe system.

Signed-off-by: Sean Hefty <sean.hefty@intel.com>
Signed-off-by: Roland Dreier <rolandd@cisco.com>
2005-10-25 10:51:39 -07:00
..
agent.c [IB] Fix MAD layer DMA mappings to avoid touching data buffer once mapped 2005-10-25 10:51:39 -07:00
agent.h [IB] Fix MAD layer DMA mappings to avoid touching data buffer once mapped 2005-10-25 10:51:39 -07:00
cache.c [PATCH] IB: move include files to include/rdma 2005-08-26 20:37:38 -07:00
cm_msgs.h [IB] cm: Add missing break in switch 2005-10-20 12:29:36 -07:00
cm.c [IB] Fix MAD layer DMA mappings to avoid touching data buffer once mapped 2005-10-25 10:51:39 -07:00
core_priv.h [PATCH] IB: move include files to include/rdma 2005-08-26 20:37:38 -07:00
device.c [IB] Check port number in ib_query_port()/ib_modify_port() 2005-10-17 15:20:27 -07:00
fmr_pool.c [PATCH] IB: move include files to include/rdma 2005-08-26 20:37:38 -07:00
mad_priv.h [IB] Fix MAD layer DMA mappings to avoid touching data buffer once mapped 2005-10-25 10:51:39 -07:00
mad_rmpp.c [IB] Fix MAD layer DMA mappings to avoid touching data buffer once mapped 2005-10-25 10:51:39 -07:00
mad_rmpp.h [IB] Fix MAD layer DMA mappings to avoid touching data buffer once mapped 2005-10-25 10:51:39 -07:00
mad.c [IB] Fix MAD layer DMA mappings to avoid touching data buffer once mapped 2005-10-25 10:51:39 -07:00
Makefile [PATCH] IB: clean up user access config options 2005-09-07 12:43:08 -07:00
packer.c [PATCH] IB: move include files to include/rdma 2005-08-26 20:37:38 -07:00
sa_query.c [IB] Fix MAD layer DMA mappings to avoid touching data buffer once mapped 2005-10-25 10:51:39 -07:00
smi.c [PATCH] IB: move include files to include/rdma 2005-08-26 20:37:38 -07:00
smi.h [IB] Fix MAD layer DMA mappings to avoid touching data buffer once mapped 2005-10-25 10:51:39 -07:00
sysfs.c [IB] Fail sysfs queries after device is unregistered 2005-10-18 14:14:56 -07:00
ucm.c Manual merge of for-linus to upstream (fix conflicts in drivers/infiniband/core/ucm.c) 2005-10-24 10:55:29 -07:00
ud_header.c [PATCH] IB: move include files to include/rdma 2005-08-26 20:37:38 -07:00
user_mad.c [IB] Fix MAD layer DMA mappings to avoid touching data buffer once mapped 2005-10-25 10:51:39 -07:00
uverbs_cmd.c [IB] uverbs: Implement more commands 2005-10-17 15:20:31 -07:00
uverbs_main.c Manual merge of for-linus to upstream (fix conflicts in drivers/infiniband/core/ucm.c) 2005-10-24 10:55:29 -07:00
uverbs_mem.c [PATCH] IB: Add copyright notices 2005-08-26 20:37:35 -07:00
uverbs.h [IB] uverbs: Implement more commands 2005-10-17 15:20:31 -07:00
verbs.c [IB] Add checks to multicast attach and detach 2005-10-17 15:20:24 -07:00