Gitweb:     
http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=1d1f19cfce7687b557cebdc41bf8a5eeba8a9882
Commit:     1d1f19cfce7687b557cebdc41bf8a5eeba8a9882
Parent:     c7d204e8fdf02f88d91707213f473805bcfb977b
Author:     Michael S. Tsirkin <[EMAIL PROTECTED]>
AuthorDate: Sat Feb 10 23:17:26 2007 +0200
Committer:  Roland Dreier <[EMAIL PROTECTED]>
CommitDate: Mon Feb 12 16:16:29 2007 -0800

    IB/mthca: Give reserved MTTs a separate cache line
    
    MTTs are allocated in non-cache-coherent memory, so we must give
    reserved MTTs their own cache line, to prevent both device and
    CPU from writing into the same cache line at the same time.
    
    Signed-off-by: Michael S. Tsirkin <[EMAIL PROTECTED]>
    Signed-off-by: Roland Dreier <[EMAIL PROTECTED]>
---
 drivers/infiniband/hw/mthca/mthca_main.c |    4 ++++
 1 files changed, 4 insertions(+), 0 deletions(-)

diff --git a/drivers/infiniband/hw/mthca/mthca_main.c 
b/drivers/infiniband/hw/mthca/mthca_main.c
index 44bc6cc..9a9dd32 100644
--- a/drivers/infiniband/hw/mthca/mthca_main.c
+++ b/drivers/infiniband/hw/mthca/mthca_main.c
@@ -464,6 +464,10 @@ static int mthca_init_icm(struct mthca_dev *mdev,
                goto err_unmap_aux;
        }
 
+       /* CPU writes to non-reserved MTTs, while HCA might DMA to reserved 
mtts */
+       mdev->limits.reserved_mtts = ALIGN(mdev->limits.reserved_mtts * 
MTHCA_MTT_SEG_SIZE,
+                                          dma_get_cache_alignment()) / 
MTHCA_MTT_SEG_SIZE;
+
        mdev->mr_table.mtt_table = mthca_alloc_icm_table(mdev, 
init_hca->mtt_base,
                                                         MTHCA_MTT_SEG_SIZE,
                                                         
mdev->limits.num_mtt_segs,
-
To unsubscribe from this list: send the line "unsubscribe git-commits-head" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to