cxgb4i: set the initial sequence number
authorKaren Xie <kxie@chelsio.com>
Fri, 10 Apr 2015 20:57:21 +0000 (13:57 -0700)
committerJames Bottomley <JBottomley@Odin.com>
Mon, 25 May 2015 15:46:25 +0000 (08:46 -0700)
set the initial sequence number so the 1st byte of payload is aligned on
the 8-byte boundary.

Signed-off-by: Karen Xie <kxie@chelsio.com>
Reviewed-by: Mike Christie <michaelc@cs.wisc.edu>
Signed-off-by: James Bottomley <JBottomley@Odin.com>
drivers/scsi/cxgbi/cxgb4i/cxgb4i.c
drivers/scsi/cxgbi/cxgb4i/cxgb4i.h

index 088aba1d23079a51ae17a1e1b1a1a41299c91fd3..de6feb8964c912e8f844010f9e6af32760481826 100644 (file)
@@ -200,9 +200,9 @@ static void send_act_open_req(struct cxgbi_sock *csk, struct sk_buff *skb,
                SMAC_SEL_V(csk->smac_idx) |
                ULP_MODE_V(ULP_MODE_ISCSI) |
                RCV_BUFSIZ_V(csk->rcv_win >> 10);
+
        opt2 = RX_CHANNEL_V(0) |
                RSS_QUEUE_VALID_F |
-               (RX_FC_DISABLE_F) |
                RSS_QUEUE_V(csk->rss_qid);
 
        if (is_t4(lldi->adapter_type)) {
@@ -231,6 +231,7 @@ static void send_act_open_req(struct cxgbi_sock *csk, struct sk_buff *skb,
        } else {
                struct cpl_t5_act_open_req *req =
                                (struct cpl_t5_act_open_req *)skb->head;
+               u32 isn = (prandom_u32() & ~7UL) - 1;
 
                INIT_TP_WR(req, 0);
                OPCODE_TID(req) = cpu_to_be32(MK_OPCODE_TID(CPL_ACT_OPEN_REQ,
@@ -244,7 +245,10 @@ static void send_act_open_req(struct cxgbi_sock *csk, struct sk_buff *skb,
                                cxgb4_select_ntuple(
                                        csk->cdev->ports[csk->port_id],
                                        csk->l2t)));
-               opt2 |= 1 << 31;
+               req->rsvd = cpu_to_be32(isn);
+               opt2 |= T5_ISS_VALID;
+               opt2 |= T5_OPT_2_VALID_F;
+
                req->opt2 = cpu_to_be32(opt2);
 
                log_debug(1 << CXGBI_DBG_TOE | 1 << CXGBI_DBG_SOCK,
index 63115bc6791c5e6cdee78c17257f30ef21ecf69c..22dd8d670e4a04d5dc16c4827e7e48e6346e5498 100644 (file)
@@ -23,6 +23,8 @@
 #define CXGB4I_TX_HEADER_LEN \
        (sizeof(struct fw_ofld_tx_data_wr) + sizeof(struct sge_opaque_hdr))
 
+#define T5_ISS_VALID           (1 << 18)
+
 struct ulptx_idata {
        __be32 cmd_more;
        __be32 len;