atl1.c (8b0c11679fd37522d8d34a76101319a085d80912) | atl1.c (9e903e085262ffbf1fc44a17ac06058aca03524a) |
---|---|
1/* 2 * Copyright(c) 2005 - 2006 Attansic Corporation. All rights reserved. 3 * Copyright(c) 2006 - 2007 Chris Snook <csnook@redhat.com> 4 * Copyright(c) 2006 - 2008 Jay Cliburn <jcliburn@gmail.com> 5 * 6 * Derived from Intel e1000 driver 7 * Copyright(c) 1999 - 2005 Intel Corporation. All rights reserved. 8 * --- 2253 unchanged lines hidden (view full) --- 2262 offset = (unsigned long)skb->data & ~PAGE_MASK; 2263 buffer_info->dma = pci_map_page(adapter->pdev, page, 2264 offset, buf_len, PCI_DMA_TODEVICE); 2265 if (++next_to_use == tpd_ring->count) 2266 next_to_use = 0; 2267 } 2268 2269 for (f = 0; f < nr_frags; f++) { | 1/* 2 * Copyright(c) 2005 - 2006 Attansic Corporation. All rights reserved. 3 * Copyright(c) 2006 - 2007 Chris Snook <csnook@redhat.com> 4 * Copyright(c) 2006 - 2008 Jay Cliburn <jcliburn@gmail.com> 5 * 6 * Derived from Intel e1000 driver 7 * Copyright(c) 1999 - 2005 Intel Corporation. All rights reserved. 8 * --- 2253 unchanged lines hidden (view full) --- 2262 offset = (unsigned long)skb->data & ~PAGE_MASK; 2263 buffer_info->dma = pci_map_page(adapter->pdev, page, 2264 offset, buf_len, PCI_DMA_TODEVICE); 2265 if (++next_to_use == tpd_ring->count) 2266 next_to_use = 0; 2267 } 2268 2269 for (f = 0; f < nr_frags; f++) { |
2270 struct skb_frag_struct *frag; | 2270 const struct skb_frag_struct *frag; |
2271 u16 i, nseg; 2272 2273 frag = &skb_shinfo(skb)->frags[f]; | 2271 u16 i, nseg; 2272 2273 frag = &skb_shinfo(skb)->frags[f]; |
2274 buf_len = frag->size; | 2274 buf_len = skb_frag_size(frag); |
2275 2276 nseg = (buf_len + ATL1_MAX_TX_BUF_LEN - 1) / 2277 ATL1_MAX_TX_BUF_LEN; 2278 for (i = 0; i < nseg; i++) { 2279 buffer_info = &tpd_ring->buffer_info[next_to_use]; 2280 BUG_ON(buffer_info->skb); 2281 2282 buffer_info->skb = NULL; --- 68 unchanged lines hidden (view full) --- 2351{ 2352 struct atl1_adapter *adapter = netdev_priv(netdev); 2353 struct atl1_tpd_ring *tpd_ring = &adapter->tpd_ring; 2354 int len; 2355 int tso; 2356 int count = 1; 2357 int ret_val; 2358 struct tx_packet_desc *ptpd; | 2275 2276 nseg = (buf_len + ATL1_MAX_TX_BUF_LEN - 1) / 2277 ATL1_MAX_TX_BUF_LEN; 2278 for (i = 0; i < nseg; i++) { 2279 buffer_info = &tpd_ring->buffer_info[next_to_use]; 2280 BUG_ON(buffer_info->skb); 2281 2282 buffer_info->skb = NULL; --- 68 unchanged lines hidden (view full) --- 2351{ 2352 struct atl1_adapter *adapter = netdev_priv(netdev); 2353 struct atl1_tpd_ring *tpd_ring = &adapter->tpd_ring; 2354 int len; 2355 int tso; 2356 int count = 1; 2357 int ret_val; 2358 struct tx_packet_desc *ptpd; |
2359 u16 frag_size; | |
2360 u16 vlan_tag; 2361 unsigned int nr_frags = 0; 2362 unsigned int mss = 0; 2363 unsigned int f; 2364 unsigned int proto_hdr_len; 2365 2366 len = skb_headlen(skb); 2367 2368 if (unlikely(skb->len <= 0)) { 2369 dev_kfree_skb_any(skb); 2370 return NETDEV_TX_OK; 2371 } 2372 2373 nr_frags = skb_shinfo(skb)->nr_frags; 2374 for (f = 0; f < nr_frags; f++) { | 2359 u16 vlan_tag; 2360 unsigned int nr_frags = 0; 2361 unsigned int mss = 0; 2362 unsigned int f; 2363 unsigned int proto_hdr_len; 2364 2365 len = skb_headlen(skb); 2366 2367 if (unlikely(skb->len <= 0)) { 2368 dev_kfree_skb_any(skb); 2369 return NETDEV_TX_OK; 2370 } 2371 2372 nr_frags = skb_shinfo(skb)->nr_frags; 2373 for (f = 0; f < nr_frags; f++) { |
2375 frag_size = skb_shinfo(skb)->frags[f].size; 2376 if (frag_size) 2377 count += (frag_size + ATL1_MAX_TX_BUF_LEN - 1) / 2378 ATL1_MAX_TX_BUF_LEN; | 2374 unsigned int f_size = skb_frag_size(&skb_shinfo(skb)->frags[f]); 2375 count += (f_size + ATL1_MAX_TX_BUF_LEN - 1) / 2376 ATL1_MAX_TX_BUF_LEN; |
2379 } 2380 2381 mss = skb_shinfo(skb)->gso_size; 2382 if (mss) { 2383 if (skb->protocol == htons(ETH_P_IP)) { 2384 proto_hdr_len = (skb_transport_offset(skb) + 2385 tcp_hdrlen(skb)); 2386 if (unlikely(proto_hdr_len > len)) { --- 1284 unchanged lines hidden --- | 2377 } 2378 2379 mss = skb_shinfo(skb)->gso_size; 2380 if (mss) { 2381 if (skb->protocol == htons(ETH_P_IP)) { 2382 proto_hdr_len = (skb_transport_offset(skb) + 2383 tcp_hdrlen(skb)); 2384 if (unlikely(proto_hdr_len > len)) { --- 1284 unchanged lines hidden --- |