aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/infiniband/hw/ipath/ipath_iba6120.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/infiniband/hw/ipath/ipath_iba6120.c')
-rw-r--r--drivers/infiniband/hw/ipath/ipath_iba6120.c16
1 files changed, 13 insertions, 3 deletions
diff --git a/drivers/infiniband/hw/ipath/ipath_iba6120.c b/drivers/infiniband/hw/ipath/ipath_iba6120.c
index b931057bb3e8..0c34555d4979 100644
--- a/drivers/infiniband/hw/ipath/ipath_iba6120.c
+++ b/drivers/infiniband/hw/ipath/ipath_iba6120.c
@@ -430,8 +430,19 @@ static void ipath_pe_handle_hwerrors(struct ipath_devdata *dd, char *msg,
430 *dd->ipath_statusp |= IPATH_STATUS_HWERROR; 430 *dd->ipath_statusp |= IPATH_STATUS_HWERROR;
431 dd->ipath_flags &= ~IPATH_INITTED; 431 dd->ipath_flags &= ~IPATH_INITTED;
432 } else { 432 } else {
433 ipath_dbg("Clearing freezemode on ignored hardware " 433 static u32 freeze_cnt;
434 "error\n"); 434
435 freeze_cnt++;
436 ipath_dbg("Clearing freezemode on ignored or recovered "
437 "hardware error (%u)\n", freeze_cnt);
438 /*
439 * clear all sends, becauase they have may been
440 * completed by usercode while in freeze mode, and
441 * therefore would not be sent, and eventually
442 * might cause the process to run out of bufs
443 */
444 ipath_cancel_sends(dd);
445 ctrl &= ~INFINIPATH_C_FREEZEMODE;
435 ipath_write_kreg(dd, dd->ipath_kregs->kr_control, 446 ipath_write_kreg(dd, dd->ipath_kregs->kr_control,
436 dd->ipath_control); 447 dd->ipath_control);
437 } 448 }
@@ -1371,7 +1382,6 @@ static int ipath_pe_txe_recover(struct ipath_devdata *dd)
1371 dev_info(&dd->pcidev->dev, 1382 dev_info(&dd->pcidev->dev,
1372 "Recovering from TXE PIO parity error\n"); 1383 "Recovering from TXE PIO parity error\n");
1373 } 1384 }
1374 ipath_disarm_senderrbufs(dd, 1);
1375 return 1; 1385 return 1;
1376} 1386}
1377 1387