aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/sunhme.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/net/sunhme.c')
-rw-r--r--drivers/net/sunhme.c9
1 files changed, 3 insertions, 6 deletions
diff --git a/drivers/net/sunhme.c b/drivers/net/sunhme.c
index bf0d4844f9fe..51c3fe2108a3 100644
--- a/drivers/net/sunhme.c
+++ b/drivers/net/sunhme.c
@@ -2055,11 +2055,10 @@ static void happy_meal_rx(struct happy_meal *hp, struct net_device *dev)
2055 goto drop_it; 2055 goto drop_it;
2056 } 2056 }
2057 2057
2058 copy_skb->dev = dev;
2059 skb_reserve(copy_skb, 2); 2058 skb_reserve(copy_skb, 2);
2060 skb_put(copy_skb, len); 2059 skb_put(copy_skb, len);
2061 hme_dma_sync_for_cpu(hp, dma_addr, len, DMA_FROMDEVICE); 2060 hme_dma_sync_for_cpu(hp, dma_addr, len, DMA_FROMDEVICE);
2062 memcpy(copy_skb->data, skb->data, len); 2061 skb_copy_from_linear_data(skb, copy_skb->data, len);
2063 hme_dma_sync_for_device(hp, dma_addr, len, DMA_FROMDEVICE); 2062 hme_dma_sync_for_device(hp, dma_addr, len, DMA_FROMDEVICE);
2064 2063
2065 /* Reuse original ring buffer. */ 2064 /* Reuse original ring buffer. */
@@ -2267,10 +2266,8 @@ static int happy_meal_start_xmit(struct sk_buff *skb, struct net_device *dev)
2267 2266
2268 tx_flags = TXFLAG_OWN; 2267 tx_flags = TXFLAG_OWN;
2269 if (skb->ip_summed == CHECKSUM_PARTIAL) { 2268 if (skb->ip_summed == CHECKSUM_PARTIAL) {
2270 u32 csum_start_off, csum_stuff_off; 2269 const u32 csum_start_off = skb_transport_offset(skb);
2271 2270 const u32 csum_stuff_off = csum_start_off + skb->csum_offset;
2272 csum_start_off = (u32) (skb->h.raw - skb->data);
2273 csum_stuff_off = csum_start_off + skb->csum_offset;
2274 2271
2275 tx_flags = (TXFLAG_OWN | TXFLAG_CSENABLE | 2272 tx_flags = (TXFLAG_OWN | TXFLAG_CSENABLE |
2276 ((csum_start_off << 14) & TXFLAG_CSBUFBEGIN) | 2273 ((csum_start_off << 14) & TXFLAG_CSBUFBEGIN) |