tx.c (ed32f8d42cee118b075e4372a55c7739a11094b2) tx.c (b54c9d5bd6e38edac9ce3a3f95f14a1292b5268d)
1// SPDX-License-Identifier: GPL-2.0-only
2/****************************************************************************
3 * Driver for Solarflare network controllers and boards
4 * Copyright 2005-2006 Fen Systems Ltd.
5 * Copyright 2005-2013 Solarflare Communications Inc.
6 */
7
8#include <linux/pci.h>

--- 260 unchanged lines hidden (view full) ---

269 copy_buf);
270
271 for (i = 0; i < skb_shinfo(skb)->nr_frags; ++i) {
272 skb_frag_t *f = &skb_shinfo(skb)->frags[i];
273 u8 *vaddr;
274
275 vaddr = kmap_atomic(skb_frag_page(f));
276
1// SPDX-License-Identifier: GPL-2.0-only
2/****************************************************************************
3 * Driver for Solarflare network controllers and boards
4 * Copyright 2005-2006 Fen Systems Ltd.
5 * Copyright 2005-2013 Solarflare Communications Inc.
6 */
7
8#include <linux/pci.h>

--- 260 unchanged lines hidden (view full) ---

269 copy_buf);
270
271 for (i = 0; i < skb_shinfo(skb)->nr_frags; ++i) {
272 skb_frag_t *f = &skb_shinfo(skb)->frags[i];
273 u8 *vaddr;
274
275 vaddr = kmap_atomic(skb_frag_page(f));
276
277 efx_memcpy_toio_aligned_cb(efx, piobuf, vaddr + f->page_offset,
277 efx_memcpy_toio_aligned_cb(efx, piobuf, vaddr + skb_frag_off(f),
278 skb_frag_size(f), copy_buf);
279 kunmap_atomic(vaddr);
280 }
281
282 EFX_WARN_ON_ONCE_PARANOID(skb_shinfo(skb)->frag_list);
283}
284
285static int efx_enqueue_skb_pio(struct efx_tx_queue *tx_queue,

--- 629 unchanged lines hidden ---
278 skb_frag_size(f), copy_buf);
279 kunmap_atomic(vaddr);
280 }
281
282 EFX_WARN_ON_ONCE_PARANOID(skb_shinfo(skb)->frag_list);
283}
284
285static int efx_enqueue_skb_pio(struct efx_tx_queue *tx_queue,

--- 629 unchanged lines hidden ---