diff options
Diffstat (limited to 'drivers/infiniband')
-rw-r--r-- | drivers/infiniband/ulp/ipoib/ipoib_cm.c | 5 | ||||
-rw-r--r-- | drivers/infiniband/ulp/ipoib/ipoib_ib.c | 5 |
2 files changed, 6 insertions, 4 deletions
diff --git a/drivers/infiniband/ulp/ipoib/ipoib_cm.c b/drivers/infiniband/ulp/ipoib/ipoib_cm.c index 39913a065f99..67a477be237e 100644 --- a/drivers/infiniband/ulp/ipoib/ipoib_cm.c +++ b/drivers/infiniband/ulp/ipoib/ipoib_cm.c | |||
@@ -169,7 +169,7 @@ static struct sk_buff *ipoib_cm_alloc_rx_skb(struct net_device *dev, | |||
169 | goto partial_error; | 169 | goto partial_error; |
170 | skb_fill_page_desc(skb, i, page, 0, PAGE_SIZE); | 170 | skb_fill_page_desc(skb, i, page, 0, PAGE_SIZE); |
171 | 171 | ||
172 | mapping[i + 1] = ib_dma_map_page(priv->ca, skb_shinfo(skb)->frags[i].page, | 172 | mapping[i + 1] = ib_dma_map_page(priv->ca, page, |
173 | 0, PAGE_SIZE, DMA_FROM_DEVICE); | 173 | 0, PAGE_SIZE, DMA_FROM_DEVICE); |
174 | if (unlikely(ib_dma_mapping_error(priv->ca, mapping[i + 1]))) | 174 | if (unlikely(ib_dma_mapping_error(priv->ca, mapping[i + 1]))) |
175 | goto partial_error; | 175 | goto partial_error; |
@@ -537,7 +537,8 @@ static void skb_put_frags(struct sk_buff *skb, unsigned int hdr_space, | |||
537 | 537 | ||
538 | if (length == 0) { | 538 | if (length == 0) { |
539 | /* don't need this page */ | 539 | /* don't need this page */ |
540 | skb_fill_page_desc(toskb, i, frag->page, 0, PAGE_SIZE); | 540 | skb_fill_page_desc(toskb, i, skb_frag_page(frag), |
541 | 0, PAGE_SIZE); | ||
541 | --skb_shinfo(skb)->nr_frags; | 542 | --skb_shinfo(skb)->nr_frags; |
542 | } else { | 543 | } else { |
543 | size = min(length, (unsigned) PAGE_SIZE); | 544 | size = min(length, (unsigned) PAGE_SIZE); |
diff --git a/drivers/infiniband/ulp/ipoib/ipoib_ib.c b/drivers/infiniband/ulp/ipoib/ipoib_ib.c index 81ae61d68a22..00435be4a44b 100644 --- a/drivers/infiniband/ulp/ipoib/ipoib_ib.c +++ b/drivers/infiniband/ulp/ipoib/ipoib_ib.c | |||
@@ -182,7 +182,7 @@ static struct sk_buff *ipoib_alloc_rx_skb(struct net_device *dev, int id) | |||
182 | goto partial_error; | 182 | goto partial_error; |
183 | skb_fill_page_desc(skb, 0, page, 0, PAGE_SIZE); | 183 | skb_fill_page_desc(skb, 0, page, 0, PAGE_SIZE); |
184 | mapping[1] = | 184 | mapping[1] = |
185 | ib_dma_map_page(priv->ca, skb_shinfo(skb)->frags[0].page, | 185 | ib_dma_map_page(priv->ca, page, |
186 | 0, PAGE_SIZE, DMA_FROM_DEVICE); | 186 | 0, PAGE_SIZE, DMA_FROM_DEVICE); |
187 | if (unlikely(ib_dma_mapping_error(priv->ca, mapping[1]))) | 187 | if (unlikely(ib_dma_mapping_error(priv->ca, mapping[1]))) |
188 | goto partial_error; | 188 | goto partial_error; |
@@ -323,7 +323,8 @@ static int ipoib_dma_map_tx(struct ib_device *ca, | |||
323 | 323 | ||
324 | for (i = 0; i < skb_shinfo(skb)->nr_frags; ++i) { | 324 | for (i = 0; i < skb_shinfo(skb)->nr_frags; ++i) { |
325 | skb_frag_t *frag = &skb_shinfo(skb)->frags[i]; | 325 | skb_frag_t *frag = &skb_shinfo(skb)->frags[i]; |
326 | mapping[i + off] = ib_dma_map_page(ca, frag->page, | 326 | mapping[i + off] = ib_dma_map_page(ca, |
327 | skb_frag_page(frag), | ||
327 | frag->page_offset, frag->size, | 328 | frag->page_offset, frag->size, |
328 | DMA_TO_DEVICE); | 329 | DMA_TO_DEVICE); |
329 | if (unlikely(ib_dma_mapping_error(ca, mapping[i + off]))) | 330 | if (unlikely(ib_dma_mapping_error(ca, mapping[i + off]))) |