diff options
Diffstat (limited to 'drivers/scsi/bnx2fc/bnx2fc_fcoe.c')
-rw-r--r-- | drivers/scsi/bnx2fc/bnx2fc_fcoe.c | 5 |
1 files changed, 2 insertions, 3 deletions
diff --git a/drivers/scsi/bnx2fc/bnx2fc_fcoe.c b/drivers/scsi/bnx2fc/bnx2fc_fcoe.c index 8c6156a10d90..a9af42e83632 100644 --- a/drivers/scsi/bnx2fc/bnx2fc_fcoe.c +++ b/drivers/scsi/bnx2fc/bnx2fc_fcoe.c | |||
@@ -322,8 +322,7 @@ static int bnx2fc_xmit(struct fc_lport *lport, struct fc_frame *fp) | |||
322 | return -ENOMEM; | 322 | return -ENOMEM; |
323 | } | 323 | } |
324 | frag = &skb_shinfo(skb)->frags[skb_shinfo(skb)->nr_frags - 1]; | 324 | frag = &skb_shinfo(skb)->frags[skb_shinfo(skb)->nr_frags - 1]; |
325 | cp = kmap_atomic(skb_frag_page(frag), KM_SKB_DATA_SOFTIRQ) | 325 | cp = kmap_atomic(skb_frag_page(frag)) + frag->page_offset; |
326 | + frag->page_offset; | ||
327 | } else { | 326 | } else { |
328 | cp = (struct fcoe_crc_eof *)skb_put(skb, tlen); | 327 | cp = (struct fcoe_crc_eof *)skb_put(skb, tlen); |
329 | } | 328 | } |
@@ -332,7 +331,7 @@ static int bnx2fc_xmit(struct fc_lport *lport, struct fc_frame *fp) | |||
332 | cp->fcoe_eof = eof; | 331 | cp->fcoe_eof = eof; |
333 | cp->fcoe_crc32 = cpu_to_le32(~crc); | 332 | cp->fcoe_crc32 = cpu_to_le32(~crc); |
334 | if (skb_is_nonlinear(skb)) { | 333 | if (skb_is_nonlinear(skb)) { |
335 | kunmap_atomic(cp, KM_SKB_DATA_SOFTIRQ); | 334 | kunmap_atomic(cp); |
336 | cp = NULL; | 335 | cp = NULL; |
337 | } | 336 | } |
338 | 337 | ||