aboutsummaryrefslogtreecommitdiffstats
path: root/drivers
diff options
context:
space:
mode:
authorRalph Campbell <ralph.campbell@qlogic.com>2008-04-17 00:01:13 -0400
committerRoland Dreier <rolandd@cisco.com>2008-04-17 00:01:13 -0400
commit8bae0ff2590c0b709d217da4466c6dba0b6b885c (patch)
treef247683b7efabae4ffda68ff7592ca22dfb69897 /drivers
parent0349d1662027fee36e590640b3b05fd979ae26f8 (diff)
IB/ipath: Fix error recovery for send buffer status after chip freeze mode
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>
Diffstat (limited to 'drivers')
-rw-r--r--drivers/infiniband/hw/ipath/ipath_intr.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/drivers/infiniband/hw/ipath/ipath_intr.c b/drivers/infiniband/hw/ipath/ipath_intr.c
index d12dfadaece7..ed2a227ceced 100644
--- a/drivers/infiniband/hw/ipath/ipath_intr.c
+++ b/drivers/infiniband/hw/ipath/ipath_intr.c
@@ -833,7 +833,8 @@ void ipath_clear_freeze(struct ipath_devdata *dd)
833 */ 833 */
834 for (i = 0; i < dd->ipath_pioavregs; i++) { 834 for (i = 0; i < dd->ipath_pioavregs; i++) {
835 /* deal with 6110 chip bug */ 835 /* deal with 6110 chip bug */
836 im = i > 3 ? i ^ 1 : i; 836 im = (i > 3 && (dd->ipath_flags & IPATH_SWAP_PIOBUFS)) ?
837 i ^ 1 : i;
837 val = ipath_read_kreg64(dd, (0x1000 / sizeof(u64)) + im); 838 val = ipath_read_kreg64(dd, (0x1000 / sizeof(u64)) + im);
838 dd->ipath_pioavailregs_dma[i] = cpu_to_le64(val); 839 dd->ipath_pioavailregs_dma[i] = cpu_to_le64(val);
839 dd->ipath_pioavailshadow[i] = val; 840 dd->ipath_pioavailshadow[i] = val;