浏览代码

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>
Ralph Campbell 17 年之前
父节点
当前提交
8bae0ff259
共有 1 个文件被更改,包括 2 次插入1 次删除
  1. 2 1
      drivers/infiniband/hw/ipath/ipath_intr.c

+ 2 - 1
drivers/infiniband/hw/ipath/ipath_intr.c

@@ -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;