diff options
Diffstat (limited to 'drivers/scsi/fcoe')
-rw-r--r-- | drivers/scsi/fcoe/fcoe.c | 6 | ||||
-rw-r--r-- | drivers/scsi/fcoe/fcoe_transport.c | 5 |
2 files changed, 5 insertions, 6 deletions
diff --git a/drivers/scsi/fcoe/fcoe.c b/drivers/scsi/fcoe/fcoe.c index acb3767fdae4..335e85192807 100644 --- a/drivers/scsi/fcoe/fcoe.c +++ b/drivers/scsi/fcoe/fcoe.c | |||
@@ -1552,7 +1552,7 @@ static int fcoe_xmit(struct fc_lport *lport, struct fc_frame *fp) | |||
1552 | 1552 | ||
1553 | /* crc offload */ | 1553 | /* crc offload */ |
1554 | if (likely(lport->crc_offload)) { | 1554 | if (likely(lport->crc_offload)) { |
1555 | skb->ip_summed = CHECKSUM_PARTIAL; | 1555 | skb->ip_summed = CHECKSUM_UNNECESSARY; |
1556 | skb->csum_start = skb_headroom(skb); | 1556 | skb->csum_start = skb_headroom(skb); |
1557 | skb->csum_offset = skb->len; | 1557 | skb->csum_offset = skb->len; |
1558 | crc = 0; | 1558 | crc = 0; |
@@ -1569,7 +1569,7 @@ static int fcoe_xmit(struct fc_lport *lport, struct fc_frame *fp) | |||
1569 | return -ENOMEM; | 1569 | return -ENOMEM; |
1570 | } | 1570 | } |
1571 | frag = &skb_shinfo(skb)->frags[skb_shinfo(skb)->nr_frags - 1]; | 1571 | frag = &skb_shinfo(skb)->frags[skb_shinfo(skb)->nr_frags - 1]; |
1572 | cp = kmap_atomic(skb_frag_page(frag), KM_SKB_DATA_SOFTIRQ) | 1572 | cp = kmap_atomic(skb_frag_page(frag)) |
1573 | + frag->page_offset; | 1573 | + frag->page_offset; |
1574 | } else { | 1574 | } else { |
1575 | cp = (struct fcoe_crc_eof *)skb_put(skb, tlen); | 1575 | cp = (struct fcoe_crc_eof *)skb_put(skb, tlen); |
@@ -1580,7 +1580,7 @@ static int fcoe_xmit(struct fc_lport *lport, struct fc_frame *fp) | |||
1580 | cp->fcoe_crc32 = cpu_to_le32(~crc); | 1580 | cp->fcoe_crc32 = cpu_to_le32(~crc); |
1581 | 1581 | ||
1582 | if (skb_is_nonlinear(skb)) { | 1582 | if (skb_is_nonlinear(skb)) { |
1583 | kunmap_atomic(cp, KM_SKB_DATA_SOFTIRQ); | 1583 | kunmap_atomic(cp); |
1584 | cp = NULL; | 1584 | cp = NULL; |
1585 | } | 1585 | } |
1586 | 1586 | ||
diff --git a/drivers/scsi/fcoe/fcoe_transport.c b/drivers/scsi/fcoe/fcoe_transport.c index 0897be0ad7b6..710e149d41b6 100644 --- a/drivers/scsi/fcoe/fcoe_transport.c +++ b/drivers/scsi/fcoe/fcoe_transport.c | |||
@@ -210,10 +210,9 @@ u32 fcoe_fc_crc(struct fc_frame *fp) | |||
210 | while (len > 0) { | 210 | while (len > 0) { |
211 | clen = min(len, PAGE_SIZE - (off & ~PAGE_MASK)); | 211 | clen = min(len, PAGE_SIZE - (off & ~PAGE_MASK)); |
212 | data = kmap_atomic( | 212 | data = kmap_atomic( |
213 | skb_frag_page(frag) + (off >> PAGE_SHIFT), | 213 | skb_frag_page(frag) + (off >> PAGE_SHIFT)); |
214 | KM_SKB_DATA_SOFTIRQ); | ||
215 | crc = crc32(crc, data + (off & ~PAGE_MASK), clen); | 214 | crc = crc32(crc, data + (off & ~PAGE_MASK), clen); |
216 | kunmap_atomic(data, KM_SKB_DATA_SOFTIRQ); | 215 | kunmap_atomic(data); |
217 | off += clen; | 216 | off += clen; |
218 | len -= clen; | 217 | len -= clen; |
219 | } | 218 | } |