device = ib_conn->device;
        ib_dev = device->ib_device;
 
+       /* +1 for drain */
        if (ib_conn->pi_support)
                max_send_wr = ISER_QP_SIG_MAX_REQ_DTOS + 1;
        else
        init_attr.qp_context = (void *)ib_conn;
        init_attr.send_cq = ib_conn->cq;
        init_attr.recv_cq = ib_conn->cq;
-       init_attr.cap.max_recv_wr = ISER_QP_MAX_RECV_DTOS;
+       /* +1 for drain */
+       init_attr.cap.max_recv_wr = ISER_QP_MAX_RECV_DTOS + 1;
        init_attr.cap.max_send_sge = 2;
        init_attr.cap.max_recv_sge = 1;
        init_attr.sq_sig_type = IB_SIGNAL_REQ_WR;
                                 iser_conn, err);
 
                /* block until all flush errors are consumed */
-               ib_drain_sq(ib_conn->qp);
+               ib_drain_qp(ib_conn->qp);
        }
 
        return 1;