]> err.no Git - linux-2.6/commitdiff
IB/ipath: Fix error recovery for send buffer status after chip freeze mode
authorRalph Campbell <ralph.campbell@qlogic.com>
Thu, 17 Apr 2008 04:01:13 +0000 (21:01 -0700)
committerRoland Dreier <rolandd@cisco.com>
Thu, 17 Apr 2008 04:01:13 +0000 (21:01 -0700)
The error recovery code for updating the driver's cached status information
for which send buffers are busy or free wasn't updated for IBA7220.
It should be similar to the initialization code in enable_chip().

Signed-off-by: Ralph Campbell <ralph.campbell@qlogic.com>
Signed-off-by: Roland Dreier <rolandd@cisco.com>
drivers/infiniband/hw/ipath/ipath_intr.c

index d12dfadaece77d5198d4263e4a6b712020dce969..ed2a227cecedd8caf12f1262d586c70600d1345d 100644 (file)
@@ -833,7 +833,8 @@ void ipath_clear_freeze(struct ipath_devdata *dd)
         */
        for (i = 0; i < dd->ipath_pioavregs; i++) {
                /* deal with 6110 chip bug */
-               im = i > 3 ? i ^ 1 : i;
+               im = (i > 3 && (dd->ipath_flags & IPATH_SWAP_PIOBUFS)) ?
+                       i ^ 1 : i;
                val = ipath_read_kreg64(dd, (0x1000 / sizeof(u64)) + im);
                dd->ipath_pioavailregs_dma[i] = cpu_to_le64(val);
                dd->ipath_pioavailshadow[i] = val;