Fnic: Memcopy only mimumum of data or trace buffer
authorHiral Shah <hishah@cisco.com>
Mon, 10 Nov 2014 20:54:33 +0000 (12:54 -0800)
committerChristoph Hellwig <hch@lst.de>
Thu, 20 Nov 2014 08:10:23 +0000 (09:10 +0100)
In case of receive path, we do not have eth header or fcoe header available
when we take a trace so we fill the fc trace buffer with 0xff for both
values. We copy only mimimum of received data or trace buffer size -
fc header - eth and fcoe header

- Increment fnic version from 1.6.0.12 to 1.6.0.13

Signed-off-by: Hiral Shah <hishah@cisco.com>
Signed-off-by: Sesidhar Baddela <sebaddel@cisco.com>
Signed-off-by: Anil Chintalapati <achintal@cisco.com>
Signed-off-by: Christoph Hellwig <hch@lst.de>
drivers/scsi/fnic/fnic.h
drivers/scsi/fnic/fnic_trace.c

index 69dee6838678735fc491aba46a547d30325c868d..dbc69ad2d1c49bbcfeccd34f39d0468f2b1edd75 100644 (file)
@@ -39,7 +39,7 @@
 
 #define DRV_NAME               "fnic"
 #define DRV_DESCRIPTION                "Cisco FCoE HBA Driver"
-#define DRV_VERSION            "1.6.0.12"
+#define DRV_VERSION            "1.6.0.13"
 #define PFX                    DRV_NAME ": "
 #define DFX                     DRV_NAME "%d: "
 
index acf1f95cb5c5363a10d09bb12eb2365e13541f09..65a9bde26974bd9a5b98b33d7f456b16c9b5c10b 100644 (file)
@@ -624,12 +624,12 @@ int fnic_fc_trace_set_data(u32 host_no, u8 frame_type,
        if (frame_type == FNIC_FC_RECV) {
                eth_fcoe_hdr_len = sizeof(struct ethhdr) +
                                        sizeof(struct fcoe_hdr);
-               fc_trc_frame_len = fc_trc_frame_len + eth_fcoe_hdr_len;
                memset((char *)fc_trace, 0xff, eth_fcoe_hdr_len);
                /* Copy the rest of data frame */
                memcpy((char *)(fc_trace + eth_fcoe_hdr_len), (void *)frame,
                min_t(u8, fc_trc_frame_len,
-                       (u8)(FC_TRC_SIZE_BYTES - FC_TRC_HEADER_SIZE)));
+                       (u8)(FC_TRC_SIZE_BYTES - FC_TRC_HEADER_SIZE
+                                               - eth_fcoe_hdr_len)));
        } else {
                memcpy((char *)fc_trace, (void *)frame,
                min_t(u8, fc_trc_frame_len,