linux/drivers/infiniband/sw/rdmavt
Jason Gunthorpe cb88645596 infiniband: Fix alignment of mmap cookies to support VIPT caching
When vmalloc_user is used to create memory that is supposed to be mmap'd
to user space, it is necessary for the mmap cookie (eg the offset) to be
aligned to SHMLBA.

This creates a situation where all virtual mappings of the same physical
page share the same virtual cache index and guarantees VIPT coherence.
Otherwise the cache is non-coherent and the kernel will not see writes
by userspace when reading the shared page (or vice-versa).

Reported-by: Josh Beavers <josh.beavers@gmail.com>
Signed-off-by: Jason Gunthorpe <jgunthorpe@obsidianresearch.com>
Signed-off-by: Doug Ledford <dledford@redhat.com>
2017-03-24 16:50:51 -04:00
..
ah.c IB/rdmavt: Clean up comments and add more documentation 2016-03-10 20:38:08 -05:00
ah.h IB/rdmavt: Fix copyright date 2016-03-10 20:37:27 -05:00
cq.c rdma: fix buggy code that the compiler warns about 2016-12-15 12:18:42 -08:00
cq.h IB/rdmavt: Fix copyright date 2016-03-10 20:37:27 -05:00
Kconfig IB/rxe, IB/rdmavt: Use dma_virt_ops instead of duplicating it 2017-01-24 12:31:32 -05:00
mad.c scripts/spelling.txt: add "therfore" pattern and fix typo instances 2017-02-27 18:43:47 -08:00
mad.h IB/rdmavt: Clean up distinction between port number and index 2016-03-10 20:37:31 -05:00
Makefile This is a tree wide change and has been kept separate for that reason. 2017-02-25 13:45:43 -08:00
mcast.c IB/hfi1: Replace qp->refcount release code with standard driver wrapper 2016-12-11 15:29:42 -05:00
mcast.h IB/rdmavt: Fix copyright date 2016-03-10 20:37:27 -05:00
mmap.c infiniband: Fix alignment of mmap cookies to support VIPT caching 2017-03-24 16:50:51 -04:00
mmap.h IB/rdmavt: Remove unnecessary exported functions 2016-03-10 20:38:10 -05:00
mr.c This is a tree wide change and has been kept separate for that reason. 2017-02-25 13:45:43 -08:00
mr.h IB/rdmavt: Add support for ib_map_mr_sg 2016-08-02 16:00:58 -04:00
pd.c IB/hfi1, rdmavt: Update copy_sge to use boolean arguments 2017-02-19 09:18:41 -05:00
pd.h IB/rdmavt: Fix copyright date 2016-03-10 20:37:27 -05:00
qp.c IB/hfi1, qib, rdmavt: Move AETH defines to rdma/ib_hdrs.h 2017-02-19 09:18:44 -05:00
qp.h IB/rdmavt: Fix copyright date 2016-03-10 20:37:27 -05:00
rc.c IB/hfi1, qib, rdmavt: Move AETH defines to rdma/ib_hdrs.h 2017-02-19 09:18:44 -05:00
srq.c IB/rdmavt: Remove unnecessary exported functions 2016-03-10 20:38:10 -05:00
srq.h IB/rdmavt: Add srq functionality to rdmavt 2016-03-10 20:37:30 -05:00
trace_mr.h IB/rdmavt: Add trace of MR segs 2016-12-11 15:29:42 -05:00
trace_qp.h IB/rdmavt: Fix trace hierarchy 2016-12-11 15:25:13 -05:00
trace_rvt.h IB/rdmavt: Fix trace hierarchy 2016-12-11 15:25:13 -05:00
trace_tx.h IB/rdmavt: Fix trace hierarchy 2016-12-11 15:25:13 -05:00
trace.c IB/rdmavt: Fix copyright date 2016-03-10 20:37:27 -05:00
trace.h IB/rdmavt: Add trace of MR segs 2016-12-11 15:29:42 -05:00
vt.c This is a tree wide change and has been kept separate for that reason. 2017-02-25 13:45:43 -08:00
vt.h IB/rxe, IB/rdmavt: Use dma_virt_ops instead of duplicating it 2017-01-24 12:31:32 -05:00