In c4iw_ep_disconnect(), if we fail to initiate a close operation, then
move the qp to ERROR to disassociate the ep from the qp.  Failure to do
this will leak the ep resources.
Signed-off-by: Steve Wise <swise@opengridcomputing.com>
Signed-off-by: Hariprasad Shenai <hariprasad@chelsio.com>
Signed-off-by: Doug Ledford <dledford@redhat.com>
                                stop_ep_timer(ep);
                                close_complete_upcall(ep, -EIO);
                        }
+                       if (ep->com.qp) {
+                               struct c4iw_qp_attributes attrs;
+
+                               attrs.next_state = C4IW_QP_STATE_ERROR;
+                               ret = c4iw_modify_qp(ep->com.qp->rhp,
+                                                    ep->com.qp,
+                                                    C4IW_QP_ATTR_NEXT_STATE,
+                                                    &attrs, 1);
+                               if (ret)
+                                       pr_err(MOD
+                                              "%s - qp <- error failed!\n",
+                                              __func__);
+                       }
                        fatal = 1;
                }
        }