X-Git-Url: http://git.cascardo.info/?a=blobdiff_plain;ds=sidebyside;f=drivers%2Fscsi%2Fcxgbi%2Fcxgb4i%2Fcxgb4i.c;h=0039bebaa9e24407bc00650fe0906a60f05247af;hb=b56061b04e0264f3b24f7450a3d5790437bb912a;hp=7c0d7af0d3b7f3678e5040b7223dab051eb8eab8;hpb=07021b43597f506cc525d139ed1a94e79cf184f2;p=cascardo%2Flinux.git diff --git a/drivers/scsi/cxgbi/cxgb4i/cxgb4i.c b/drivers/scsi/cxgbi/cxgb4i/cxgb4i.c index 7c0d7af0d3b7..0039bebaa9e2 100644 --- a/drivers/scsi/cxgbi/cxgb4i/cxgb4i.c +++ b/drivers/scsi/cxgbi/cxgb4i/cxgb4i.c @@ -685,6 +685,11 @@ static int push_tx_frames(struct cxgbi_sock *csk, int req_completion) req_completion); csk->snd_nxt += len; cxgbi_skcb_clear_flag(skb, SKCBF_TX_NEED_HDR); + } else if (cxgbi_skcb_test_flag(skb, SKCBF_TX_FLAG_COMPL) && + (csk->wr_una_cred >= (csk->wr_max_cred / 2))) { + struct cpl_close_con_req *req = + (struct cpl_close_con_req *)skb->data; + req->wr.wr_hi |= htonl(FW_WR_COMPL_F); } total_size += skb->truesize; t4_set_arp_err_handler(skb, csk, arp_failure_skb_discard);