b/drivers/net/ethernet/myricom/myri10ge/myri10ge.c
@@ -1340,17 +1340,14 @@ myri10ge_rx_done(struct myri10ge_slice_state
*ss, int len, __wsum csum)
/* Fill skb_frag_struct(s) with data from our receive */
for (i = 0, remainder = len; remainder > 0; i++) {
myri10ge_unmap_rx_page(pdev, &rx->info[idx], bytes);
- __skb_frag_set_page(&rx_frags[i], rx->info[idx].page);
- rx_frags[i].page_offset = rx->info[idx].page_offset;
- if (remainder < MYRI10GE_ALLOC_SIZE)
- skb_frag_size_set(&rx_frags[i], remainder);
- else
- skb_frag_size_set(&rx_frags[i], MYRI10GE_ALLOC_SIZE);
+ skb_fill_page_desc(skb, i, rx->info[idx].page,
+ rx->info[idx].page_offset,
+ remainder < MYRI10GE_ALLOC_SIZE ?
+ remainder : MYRI10GE_ALLOC_SIZE);
rx->cnt++;
idx = rx->cnt & rx->mask;
remainder -= MYRI10GE_ALLOC_SIZE;
}
- skb_shinfo(skb)->nr_frags = i;
/* remove padding */
Now that LRO is gone, the receive routine is much simpler, and we are able to use the standard skb_fill_page_desc() in myri10ge. Signed-off-by: Andrew Gallatin <gallatin@myri.com> --- drivers/net/ethernet/myricom/myri10ge/myri10ge.c | 11 ++++------- 1 file changed, 4 insertions(+), 7 deletions(-) rx_frags[0].page_offset += MXGEFW_PAD;