IB/ipath: Fix bug that can leave sends disabled after freeze recovery
authorDave Olson <dave.olson@qlogic.com>
Wed, 7 May 2008 17:57:48 +0000 (10:57 -0700)
committerRoland Dreier <rolandd@cisco.com>
Wed, 7 May 2008 17:57:48 +0000 (10:57 -0700)
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>
drivers/infiniband/hw/ipath/ipath_intr.c

index 1b58f4737c716e88629a465b34847a22e6e695b4..45c4c068ab1eec0e936c4263d8b93b7a9514f31e 100644 (file)
@@ -933,11 +933,15 @@ void ipath_clear_freeze(struct ipath_devdata *dd)
         * therefore would not be sent, and eventually
         * might cause the process to run out of bufs
         */
-       ipath_cancel_sends(dd, 0);
+       ipath_cancel_sends(dd, 1);
        ipath_write_kreg(dd, dd->ipath_kregs->kr_control,
                         dd->ipath_control);
 
-       /* ensure pio avail updates continue */
+       /*
+        * ensure pio avail updates continue (because the update
+        * won't have happened from cancel_sends because we were
+        * still in freeze
+        */
        ipath_force_pio_avail_update(dd);
 
        /*