46707e96b7
mthca_table_find() will return the wrong address when the table entry being searched for is exactly at the beginning of a sglist entry (other than the first), because it uses >= when it should use >. Example: assume we have 2 entries in scatterlist, 4K each, offset is 4K. The current code will return first entry + 4K when we really want the second entry. In particular this means mapping an FMR on a memfree HCA may end up writing the page table into the wrong place, leading to memory corruption and also causing the HCA to use an incorrect address translation table. Signed-off-by: Michael S. Tsirkin <mst@mellanox.co.il> Signed-off-by: Roland Dreier <rolandd@cisco.com> |
||
---|---|---|
.. | ||
Kconfig | ||
Makefile | ||
mthca_allocator.c | ||
mthca_av.c | ||
mthca_catas.c | ||
mthca_cmd.c | ||
mthca_cmd.h | ||
mthca_config_reg.h | ||
mthca_cq.c | ||
mthca_dev.h | ||
mthca_doorbell.h | ||
mthca_eq.c | ||
mthca_mad.c | ||
mthca_main.c | ||
mthca_mcg.c | ||
mthca_memfree.c | ||
mthca_memfree.h | ||
mthca_mr.c | ||
mthca_pd.c | ||
mthca_profile.c | ||
mthca_profile.h | ||
mthca_provider.c | ||
mthca_provider.h | ||
mthca_qp.c | ||
mthca_reset.c | ||
mthca_srq.c | ||
mthca_uar.c | ||
mthca_user.h | ||
mthca_wqe.h |