Gitweb:     
http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=9ef8617af77136e743e5dd4b081a61797888a977
Commit:     9ef8617af77136e743e5dd4b081a61797888a977
Parent:     1793b4771d258c93ed86a6356c95cac418781fdd
Author:     Dave Olson <[EMAIL PROTECTED]>
AuthorDate: Thu Aug 9 15:18:48 2007 -0700
Committer:  Roland Dreier <[EMAIL PROTECTED]>
CommitDate: Tue Oct 9 20:44:20 2007 -0700

    IB/ipath: Correctly describe workaround for TID write chip bug
    
    This is a comment change, only, correcting the comment to match the
    implemented workaround, rather than the original workaround, and
    clarifying why it's needed.
    
    Signed-off-by: Dave Olson <[EMAIL PROTECTED]>
    Signed-off-by: Roland Dreier <[EMAIL PROTECTED]>
---
 drivers/infiniband/hw/ipath/ipath_iba6120.c |   13 ++++++++-----
 1 files changed, 8 insertions(+), 5 deletions(-)

diff --git a/drivers/infiniband/hw/ipath/ipath_iba6120.c 
b/drivers/infiniband/hw/ipath/ipath_iba6120.c
index a324c6f..d43f0b3 100644
--- a/drivers/infiniband/hw/ipath/ipath_iba6120.c
+++ b/drivers/infiniband/hw/ipath/ipath_iba6120.c
@@ -1143,11 +1143,14 @@ static void ipath_pe_put_tid(struct ipath_devdata *dd, 
u64 __iomem *tidptr,
                        pa |= 2 << 29;
        }
 
-       /* workaround chip bug 9437 by writing each TID twice
-        * and holding a spinlock around the writes, so they don't
-        * intermix with other TID (eager or expected) writes
-        * Unfortunately, this call can be done from interrupt level
-        * for the port 0 eager TIDs, so we have to use irqsave
+       /*
+        * Workaround chip bug 9437 by writing the scratch register
+        * before and after the TID, and with an io write barrier.
+        * We use a spinlock around the writes, so they can't intermix
+        * with other TID (eager or expected) writes (the chip bug
+        * is triggered by back to back TID writes). Unfortunately, this
+        * call can be done from interrupt level for the port 0 eager TIDs,
+        * so we have to use irqsave locks.
         */
        spin_lock_irqsave(&dd->ipath_tid_lock, flags);
        ipath_write_kreg(dd, dd->ipath_kregs->kr_scratch, 0xfeeddeaf);
-
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