Browse Source

[SCSI] cxgbi: set ulpmode only if digest is on

There is no need to set ulpmode on the tx skbs if no digest is enabled.

Signed-off-by: Karen Xie <kxie@chelsio.com>
Reviewed-by: Mike Christie <michaelc@cs.wisc.edu>
Signed-off-by: James Bottomley <James.Bottomley@suse.de>
kxie@chelsio.com 14 years ago
parent
commit
c343a01cca
1 changed files with 10 additions and 7 deletions
  1. 10 7
      drivers/scsi/cxgbi/libcxgbi.c

+ 10 - 7
drivers/scsi/cxgbi/libcxgbi.c

@@ -1908,13 +1908,16 @@ EXPORT_SYMBOL_GPL(cxgbi_conn_alloc_pdu);
 
 
 static inline void tx_skb_setmode(struct sk_buff *skb, int hcrc, int dcrc)
 static inline void tx_skb_setmode(struct sk_buff *skb, int hcrc, int dcrc)
 {
 {
-	u8 submode = 0;
-
-	if (hcrc)
-		submode |= 1;
-	if (dcrc)
-		submode |= 2;
-	cxgbi_skcb_ulp_mode(skb) = (ULP2_MODE_ISCSI << 4) | submode;
+	if (hcrc || dcrc) {
+		u8 submode = 0;
+
+		if (hcrc)
+			submode |= 1;
+		if (dcrc)
+			submode |= 2;
+		cxgbi_skcb_ulp_mode(skb) = (ULP2_MODE_ISCSI << 4) | submode;
+	} else
+		cxgbi_skcb_ulp_mode(skb) = 0;
 }
 }
 
 
 int cxgbi_conn_init_pdu(struct iscsi_task *task, unsigned int offset,
 int cxgbi_conn_init_pdu(struct iscsi_task *task, unsigned int offset,