[SCSI] libfc: Remove FC_FRAME_SG_LEN in fc_fcp_send_data
authorYi Zou <yi.zou@intel.com>
Thu, 30 Jul 2009 00:05:32 +0000 (17:05 -0700)
committerJames Bottomley <James.Bottomley@suse.de>
Sat, 22 Aug 2009 22:52:10 +0000 (17:52 -0500)
FC_FRAME_SG_LEN is 4 which is too small when offload is enabled. Actually, the
WARN_ON() in fc_fcp_send_data() should be:

WARN_ON(skb_shinfo(fp_skb(fp))->nr_frags > MAX_SKB_FRAGS);

But since we will not get anything more than 64K anyway, so there is no need
to do this anyway here. Therefore, I am getting rid of FC_FRAME_SG_LEN here
and the WARN_ON here.

Signed-off-by: Yi Zou <yi.zou@intel.com>
Signed-off-by: Robert Love <robert.w.love@intel.com>
Signed-off-by: James Bottomley <James.Bottomley@HansenPartnership.com>
Signed-off-by: James Bottomley <James.Bottomley@suse.de>
drivers/scsi/libfc/fc_fcp.c
include/scsi/fc_frame.h

index e303e0d12c4b1c626d7fc3837d0aa35fe9051063..2069edf80268626f522500d5cac3bca33c6eda8e 100644 (file)
@@ -569,8 +569,6 @@ static int fc_fcp_send_data(struct fc_fcp_pkt *fsp, struct fc_seq *seq,
                }
                sg_bytes = min(tlen, sg->length - offset);
                if (using_sg) {
-                       WARN_ON(skb_shinfo(fp_skb(fp))->nr_frags >
-                               FC_FRAME_SG_LEN);
                        get_page(sg_page(sg));
                        skb_fill_page_desc(fp_skb(fp),
                                           skb_shinfo(fp_skb(fp))->nr_frags,
index 59511057cee0e01cd844fc5d2dc026e2faaab65f..c35d2383cc2663a2bed346d8ea0aa78f227ffa6a 100644 (file)
 #define        FC_FRAME_HEADROOM       32      /* headroom for VLAN + FCoE headers */
 #define        FC_FRAME_TAILROOM       8       /* trailer space for FCoE */
 
-/*
- * Information about an individual fibre channel frame received or to be sent.
- * The buffer may be in up to 4 additional non-contiguous sections,
- * but the linear section must hold the frame header.
- */
-#define FC_FRAME_SG_LEN                4       /* scatter/gather list maximum length */
-
 #define fp_skb(fp)     (&((fp)->skb))
 #define fr_hdr(fp)     ((fp)->skb.data)
 #define fr_len(fp)     ((fp)->skb.len)