aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/infiniband/hw/ipath/ipath_intr.c
diff options
context:
space:
mode:
authorDave Olson <dave.olson@qlogic.com>2008-05-07 13:57:48 -0400
committerRoland Dreier <rolandd@cisco.com>2008-05-07 13:57:48 -0400
commitb4d390d8d219452e5d4257c87134a6934d7fabeb (patch)
tree4d477e59d5e7540884b7740187f671b6fce2956a /drivers/infiniband/hw/ipath/ipath_intr.c
parent6e87d1500713767866db0668bbcec75719576f3c (diff)
IB/ipath: Fix bug that can leave sends disabled after freeze recovery
The semantics of cancel_sends changed, but the code using it was missed. Don't leave sends and pioavail updates disabled, and add a comment as to why the force update is needed. Signed-off-by: Dave Olson <dave.olson@qlogic.com> Signed-off-by: Roland Dreier <rolandd@cisco.com>
Diffstat (limited to 'drivers/infiniband/hw/ipath/ipath_intr.c')
-rw-r--r--drivers/infiniband/hw/ipath/ipath_intr.c8
1 files changed, 6 insertions, 2 deletions
diff --git a/drivers/infiniband/hw/ipath/ipath_intr.c b/drivers/infiniband/hw/ipath/ipath_intr.c
index 1b58f4737c7..45c4c068ab1 100644
--- a/drivers/infiniband/hw/ipath/ipath_intr.c
+++ b/drivers/infiniband/hw/ipath/ipath_intr.c
@@ -933,11 +933,15 @@ void ipath_clear_freeze(struct ipath_devdata *dd)
933 * therefore would not be sent, and eventually 933 * therefore would not be sent, and eventually
934 * might cause the process to run out of bufs 934 * might cause the process to run out of bufs
935 */ 935 */
936 ipath_cancel_sends(dd, 0); 936 ipath_cancel_sends(dd, 1);
937 ipath_write_kreg(dd, dd->ipath_kregs->kr_control, 937 ipath_write_kreg(dd, dd->ipath_kregs->kr_control,
938 dd->ipath_control); 938 dd->ipath_control);
939 939
940 /* ensure pio avail updates continue */ 940 /*
941 * ensure pio avail updates continue (because the update
942 * won't have happened from cancel_sends because we were
943 * still in freeze
944 */
941 ipath_force_pio_avail_update(dd); 945 ipath_force_pio_avail_update(dd);
942 946
943 /* 947 /*