mirror of
https://mirrors.bfsu.edu.cn/git/linux.git
synced 2024-12-02 08:34:20 +08:00
Merge branch 'master' of ../netdev-next/
This commit is contained in:
commit
986eaa9041
@ -2179,9 +2179,10 @@ boomerang_start_xmit(struct sk_buff *skb, struct net_device *dev)
|
||||
skb_frag_t *frag = &skb_shinfo(skb)->frags[i];
|
||||
|
||||
vp->tx_ring[entry].frag[i+1].addr =
|
||||
cpu_to_le32(pci_map_single(VORTEX_PCI(vp),
|
||||
(void*)page_address(frag->page) + frag->page_offset,
|
||||
frag->size, PCI_DMA_TODEVICE));
|
||||
cpu_to_le32(pci_map_single(
|
||||
VORTEX_PCI(vp),
|
||||
(void *)skb_frag_address(frag),
|
||||
frag->size, PCI_DMA_TODEVICE));
|
||||
|
||||
if (i == skb_shinfo(skb)->nr_frags-1)
|
||||
vp->tx_ring[entry].frag[i+1].length = cpu_to_le32(frag->size|LAST_FRAG);
|
||||
|
@ -113,9 +113,8 @@ static void greth_print_tx_packet(struct sk_buff *skb)
|
||||
for (i = 0; i < skb_shinfo(skb)->nr_frags; i++) {
|
||||
|
||||
print_hex_dump(KERN_DEBUG, "TX: ", DUMP_PREFIX_OFFSET, 16, 1,
|
||||
phys_to_virt(page_to_phys(skb_shinfo(skb)->frags[i].page)) +
|
||||
skb_shinfo(skb)->frags[i].page_offset,
|
||||
length, true);
|
||||
skb_frag_address(&skb_shinfo(skb)->frags[i]),
|
||||
skb_shinfo(skb)->frags[i].size, true);
|
||||
}
|
||||
}
|
||||
|
||||
@ -528,11 +527,8 @@ greth_start_xmit_gbit(struct sk_buff *skb, struct net_device *dev)
|
||||
|
||||
greth_write_bd(&bdp->stat, status);
|
||||
|
||||
dma_addr = dma_map_page(greth->dev,
|
||||
frag->page,
|
||||
frag->page_offset,
|
||||
frag->size,
|
||||
DMA_TO_DEVICE);
|
||||
dma_addr = skb_frag_dma_map(greth->dev, frag, 0, frag->size,
|
||||
DMA_TO_DEVICE);
|
||||
|
||||
if (unlikely(dma_mapping_error(greth->dev, dma_addr)))
|
||||
goto frag_map_error;
|
||||
|
@ -2485,9 +2485,9 @@ restart:
|
||||
info = ap->skb->tx_skbuff + idx;
|
||||
desc = ap->tx_ring + idx;
|
||||
|
||||
mapping = pci_map_page(ap->pdev, frag->page,
|
||||
frag->page_offset, frag->size,
|
||||
PCI_DMA_TODEVICE);
|
||||
mapping = skb_frag_dma_map(&ap->pdev->dev, frag, 0,
|
||||
frag->size,
|
||||
PCI_DMA_TODEVICE);
|
||||
|
||||
flagsize = (frag->size << 16);
|
||||
if (skb->ip_summed == CHECKSUM_PARTIAL)
|
||||
|
@ -2180,11 +2180,10 @@ static void atl1c_tx_map(struct atl1c_adapter *adapter,
|
||||
|
||||
buffer_info = atl1c_get_tx_buffer(adapter, use_tpd);
|
||||
buffer_info->length = frag->size;
|
||||
buffer_info->dma =
|
||||
pci_map_page(adapter->pdev, frag->page,
|
||||
frag->page_offset,
|
||||
buffer_info->length,
|
||||
PCI_DMA_TODEVICE);
|
||||
buffer_info->dma = skb_frag_dma_map(&adapter->pdev->dev,
|
||||
frag, 0,
|
||||
buffer_info->length,
|
||||
PCI_DMA_TODEVICE);
|
||||
ATL1C_SET_BUFFER_STATE(buffer_info, ATL1C_BUFFER_BUSY);
|
||||
ATL1C_SET_PCIMAP_TYPE(buffer_info, ATL1C_PCIMAP_PAGE,
|
||||
ATL1C_PCIMAP_TODEVICE);
|
||||
|
@ -1765,12 +1765,11 @@ static void atl1e_tx_map(struct atl1e_adapter *adapter,
|
||||
MAX_TX_BUF_LEN : buf_len;
|
||||
buf_len -= tx_buffer->length;
|
||||
|
||||
tx_buffer->dma =
|
||||
pci_map_page(adapter->pdev, frag->page,
|
||||
frag->page_offset +
|
||||
(i * MAX_TX_BUF_LEN),
|
||||
tx_buffer->length,
|
||||
PCI_DMA_TODEVICE);
|
||||
tx_buffer->dma = skb_frag_dma_map(&adapter->pdev->dev,
|
||||
frag,
|
||||
(i * MAX_TX_BUF_LEN),
|
||||
tx_buffer->length,
|
||||
PCI_DMA_TODEVICE);
|
||||
ATL1E_SET_PCIMAP_TYPE(tx_buffer, ATL1E_TX_PCIMAP_PAGE);
|
||||
use_tpd->buffer_addr = cpu_to_le64(tx_buffer->dma);
|
||||
use_tpd->word2 = (use_tpd->word2 & (~TPD_BUFLEN_MASK)) |
|
||||
|
@ -2283,9 +2283,8 @@ static void atl1_tx_map(struct atl1_adapter *adapter, struct sk_buff *skb,
|
||||
buffer_info->length = (buf_len > ATL1_MAX_TX_BUF_LEN) ?
|
||||
ATL1_MAX_TX_BUF_LEN : buf_len;
|
||||
buf_len -= buffer_info->length;
|
||||
buffer_info->dma = pci_map_page(adapter->pdev,
|
||||
frag->page,
|
||||
frag->page_offset + (i * ATL1_MAX_TX_BUF_LEN),
|
||||
buffer_info->dma = skb_frag_dma_map(&adapter->pdev->dev,
|
||||
frag, i * ATL1_MAX_TX_BUF_LEN,
|
||||
buffer_info->length, PCI_DMA_TODEVICE);
|
||||
|
||||
if (++next_to_use == tpd_ring->count)
|
||||
|
@ -2753,8 +2753,8 @@ bnad_start_xmit(struct sk_buff *skb, struct net_device *netdev)
|
||||
|
||||
BUG_ON(!(size <= BFI_TX_MAX_DATA_PER_VECTOR));
|
||||
txqent->vector[vect_id].length = htons(size);
|
||||
dma_addr = dma_map_page(&bnad->pcidev->dev, frag->page,
|
||||
frag->page_offset, size, DMA_TO_DEVICE);
|
||||
dma_addr = skb_frag_dma_map(&bnad->pcidev->dev, frag,
|
||||
0, size, DMA_TO_DEVICE);
|
||||
dma_unmap_addr_set(&unmap_q->unmap_array[unmap_prod], dma_addr,
|
||||
dma_addr);
|
||||
BNA_SET_DMA_ADDR(dma_addr, &txqent->vector[vect_id].host_addr);
|
||||
|
@ -591,9 +591,9 @@ static inline void enic_queue_wq_skb_cont(struct enic *enic,
|
||||
for (frag = skb_shinfo(skb)->frags; len_left; frag++) {
|
||||
len_left -= frag->size;
|
||||
enic_queue_wq_desc_cont(wq, skb,
|
||||
pci_map_page(enic->pdev, frag->page,
|
||||
frag->page_offset, frag->size,
|
||||
PCI_DMA_TODEVICE),
|
||||
skb_frag_dma_map(&enic->pdev->dev,
|
||||
frag, 0, frag->size,
|
||||
PCI_DMA_TODEVICE),
|
||||
frag->size,
|
||||
(len_left == 0), /* EOP? */
|
||||
loopback);
|
||||
@ -705,14 +705,14 @@ static inline void enic_queue_wq_skb_tso(struct enic *enic,
|
||||
for (frag = skb_shinfo(skb)->frags; len_left; frag++) {
|
||||
len_left -= frag->size;
|
||||
frag_len_left = frag->size;
|
||||
offset = frag->page_offset;
|
||||
offset = 0;
|
||||
|
||||
while (frag_len_left) {
|
||||
len = min(frag_len_left,
|
||||
(unsigned int)WQ_ENET_MAX_DESC_LEN);
|
||||
dma_addr = pci_map_page(enic->pdev, frag->page,
|
||||
offset, len,
|
||||
PCI_DMA_TODEVICE);
|
||||
dma_addr = skb_frag_dma_map(&enic->pdev->dev, frag,
|
||||
offset, len,
|
||||
PCI_DMA_TODEVICE);
|
||||
enic_queue_wq_desc_cont(wq, skb,
|
||||
dma_addr,
|
||||
len,
|
||||
|
@ -638,8 +638,8 @@ static int make_tx_wrbs(struct be_adapter *adapter, struct be_queue_info *txq,
|
||||
for (i = 0; i < skb_shinfo(skb)->nr_frags; i++) {
|
||||
struct skb_frag_struct *frag =
|
||||
&skb_shinfo(skb)->frags[i];
|
||||
busaddr = dma_map_page(dev, frag->page, frag->page_offset,
|
||||
frag->size, DMA_TO_DEVICE);
|
||||
busaddr = skb_frag_dma_map(dev, frag, 0,
|
||||
frag->size, DMA_TO_DEVICE);
|
||||
if (dma_mapping_error(dev, busaddr))
|
||||
goto dma_err;
|
||||
wrb = queue_head_node(txq);
|
||||
@ -1066,7 +1066,7 @@ static void skb_fill_rx_data(struct be_adapter *adapter, struct be_rx_obj *rxo,
|
||||
skb->tail += curr_frag_len;
|
||||
} else {
|
||||
skb_shinfo(skb)->nr_frags = 1;
|
||||
skb_shinfo(skb)->frags[0].page = page_info->page;
|
||||
skb_frag_set_page(skb, 0, page_info->page);
|
||||
skb_shinfo(skb)->frags[0].page_offset =
|
||||
page_info->page_offset + hdr_len;
|
||||
skb_shinfo(skb)->frags[0].size = curr_frag_len - hdr_len;
|
||||
@ -1091,7 +1091,7 @@ static void skb_fill_rx_data(struct be_adapter *adapter, struct be_rx_obj *rxo,
|
||||
if (page_info->page_offset == 0) {
|
||||
/* Fresh page */
|
||||
j++;
|
||||
skb_shinfo(skb)->frags[j].page = page_info->page;
|
||||
skb_frag_set_page(skb, j, page_info->page);
|
||||
skb_shinfo(skb)->frags[j].page_offset =
|
||||
page_info->page_offset;
|
||||
skb_shinfo(skb)->frags[j].size = 0;
|
||||
@ -1173,7 +1173,7 @@ static void be_rx_compl_process_gro(struct be_adapter *adapter,
|
||||
if (i == 0 || page_info->page_offset == 0) {
|
||||
/* First frag or Fresh page */
|
||||
j++;
|
||||
skb_shinfo(skb)->frags[j].page = page_info->page;
|
||||
skb_frag_set_page(skb, j, page_info->page);
|
||||
skb_shinfo(skb)->frags[j].page_offset =
|
||||
page_info->page_offset;
|
||||
skb_shinfo(skb)->frags[j].size = 0;
|
||||
|
@ -2140,11 +2140,11 @@ static int gfar_start_xmit(struct sk_buff *skb, struct net_device *dev)
|
||||
if (i == nr_frags - 1)
|
||||
lstatus |= BD_LFLAG(TXBD_LAST | TXBD_INTERRUPT);
|
||||
|
||||
bufaddr = dma_map_page(&priv->ofdev->dev,
|
||||
skb_shinfo(skb)->frags[i].page,
|
||||
skb_shinfo(skb)->frags[i].page_offset,
|
||||
length,
|
||||
DMA_TO_DEVICE);
|
||||
bufaddr = skb_frag_dma_map(&priv->ofdev->dev,
|
||||
&skb_shinfo(skb)->frags[i],
|
||||
0,
|
||||
length,
|
||||
DMA_TO_DEVICE);
|
||||
|
||||
/* set the TxBD length and buffer pointer */
|
||||
txbdp->bufPtr = bufaddr;
|
||||
|
@ -2911,9 +2911,10 @@ static int e1000_tx_map(struct e1000_adapter *adapter,
|
||||
|
||||
frag = &skb_shinfo(skb)->frags[f];
|
||||
len = frag->size;
|
||||
offset = frag->page_offset;
|
||||
offset = 0;
|
||||
|
||||
while (len) {
|
||||
unsigned long bufend;
|
||||
i++;
|
||||
if (unlikely(i == tx_ring->count))
|
||||
i = 0;
|
||||
@ -2927,18 +2928,19 @@ static int e1000_tx_map(struct e1000_adapter *adapter,
|
||||
/* Workaround for potential 82544 hang in PCI-X.
|
||||
* Avoid terminating buffers within evenly-aligned
|
||||
* dwords. */
|
||||
bufend = (unsigned long)
|
||||
page_to_phys(skb_frag_page(frag));
|
||||
bufend += offset + size - 1;
|
||||
if (unlikely(adapter->pcix_82544 &&
|
||||
!((unsigned long)(page_to_phys(frag->page) + offset
|
||||
+ size - 1) & 4) &&
|
||||
size > 4))
|
||||
!(bufend & 4) &&
|
||||
size > 4))
|
||||
size -= 4;
|
||||
|
||||
buffer_info->length = size;
|
||||
buffer_info->time_stamp = jiffies;
|
||||
buffer_info->mapped_as_page = true;
|
||||
buffer_info->dma = dma_map_page(&pdev->dev, frag->page,
|
||||
offset, size,
|
||||
DMA_TO_DEVICE);
|
||||
buffer_info->dma = skb_frag_dma_map(&pdev->dev, frag,
|
||||
offset, size, DMA_TO_DEVICE);
|
||||
if (dma_mapping_error(&pdev->dev, buffer_info->dma))
|
||||
goto dma_error;
|
||||
buffer_info->next_to_watch = i;
|
||||
|
@ -4677,7 +4677,7 @@ static int e1000_tx_map(struct e1000_adapter *adapter,
|
||||
|
||||
frag = &skb_shinfo(skb)->frags[f];
|
||||
len = frag->size;
|
||||
offset = frag->page_offset;
|
||||
offset = 0;
|
||||
|
||||
while (len) {
|
||||
i++;
|
||||
@ -4690,9 +4690,8 @@ static int e1000_tx_map(struct e1000_adapter *adapter,
|
||||
buffer_info->length = size;
|
||||
buffer_info->time_stamp = jiffies;
|
||||
buffer_info->next_to_watch = i;
|
||||
buffer_info->dma = dma_map_page(&pdev->dev, frag->page,
|
||||
offset, size,
|
||||
DMA_TO_DEVICE);
|
||||
buffer_info->dma = skb_frag_dma_map(&pdev->dev, frag,
|
||||
offset, size, DMA_TO_DEVICE);
|
||||
buffer_info->mapped_as_page = true;
|
||||
if (dma_mapping_error(&pdev->dev, buffer_info->dma))
|
||||
goto dma_error;
|
||||
|
@ -4174,10 +4174,7 @@ static inline int igb_tx_map_adv(struct igb_ring *tx_ring, struct sk_buff *skb,
|
||||
buffer_info->time_stamp = jiffies;
|
||||
buffer_info->next_to_watch = i;
|
||||
buffer_info->mapped_as_page = true;
|
||||
buffer_info->dma = dma_map_page(dev,
|
||||
frag->page,
|
||||
frag->page_offset,
|
||||
len,
|
||||
buffer_info->dma = skb_frag_dma_map(dev, frag, 0, len,
|
||||
DMA_TO_DEVICE);
|
||||
if (dma_mapping_error(dev, buffer_info->dma))
|
||||
goto dma_error;
|
||||
|
@ -2061,10 +2061,7 @@ static inline int igbvf_tx_map_adv(struct igbvf_adapter *adapter,
|
||||
buffer_info->time_stamp = jiffies;
|
||||
buffer_info->next_to_watch = i;
|
||||
buffer_info->mapped_as_page = true;
|
||||
buffer_info->dma = dma_map_page(&pdev->dev,
|
||||
frag->page,
|
||||
frag->page_offset,
|
||||
len,
|
||||
buffer_info->dma = skb_frag_dma_map(&pdev->dev, frag, 0, len,
|
||||
DMA_TO_DEVICE);
|
||||
if (dma_mapping_error(&pdev->dev, buffer_info->dma))
|
||||
goto dma_error;
|
||||
|
@ -1341,7 +1341,7 @@ ixgb_tx_map(struct ixgb_adapter *adapter, struct sk_buff *skb,
|
||||
|
||||
frag = &skb_shinfo(skb)->frags[f];
|
||||
len = frag->size;
|
||||
offset = frag->page_offset;
|
||||
offset = 0;
|
||||
|
||||
while (len) {
|
||||
i++;
|
||||
@ -1361,8 +1361,8 @@ ixgb_tx_map(struct ixgb_adapter *adapter, struct sk_buff *skb,
|
||||
buffer_info->time_stamp = jiffies;
|
||||
buffer_info->mapped_as_page = true;
|
||||
buffer_info->dma =
|
||||
dma_map_page(&pdev->dev, frag->page,
|
||||
offset, size, DMA_TO_DEVICE);
|
||||
skb_frag_dma_map(&pdev->dev, frag, offset, size,
|
||||
DMA_TO_DEVICE);
|
||||
if (dma_mapping_error(&pdev->dev, buffer_info->dma))
|
||||
goto dma_error;
|
||||
buffer_info->next_to_watch = 0;
|
||||
|
@ -6494,8 +6494,7 @@ static void ixgbe_tx_map(struct ixgbe_ring *tx_ring,
|
||||
offset = 0;
|
||||
tx_flags |= IXGBE_TX_FLAGS_MAPPED_AS_PAGE;
|
||||
|
||||
dma = dma_map_page(dev, frag->page, frag->page_offset,
|
||||
size, DMA_TO_DEVICE);
|
||||
dma = skb_frag_dma_map(dev, frag, 0, size, DMA_TO_DEVICE);
|
||||
if (dma_mapping_error(dev, dma))
|
||||
goto dma_error;
|
||||
|
||||
|
@ -2918,18 +2918,16 @@ static int ixgbevf_tx_map(struct ixgbevf_adapter *adapter,
|
||||
|
||||
frag = &skb_shinfo(skb)->frags[f];
|
||||
len = min((unsigned int)frag->size, total);
|
||||
offset = frag->page_offset;
|
||||
offset = 0;
|
||||
|
||||
while (len) {
|
||||
tx_buffer_info = &tx_ring->tx_buffer_info[i];
|
||||
size = min(len, (unsigned int)IXGBE_MAX_DATA_PER_TXD);
|
||||
|
||||
tx_buffer_info->length = size;
|
||||
tx_buffer_info->dma = dma_map_page(&adapter->pdev->dev,
|
||||
frag->page,
|
||||
offset,
|
||||
size,
|
||||
DMA_TO_DEVICE);
|
||||
tx_buffer_info->dma =
|
||||
skb_frag_dma_map(&adapter->pdev->dev, frag,
|
||||
offset, size, DMA_TO_DEVICE);
|
||||
tx_buffer_info->mapped_as_page = true;
|
||||
if (dma_mapping_error(&pdev->dev, tx_buffer_info->dma))
|
||||
goto dma_error;
|
||||
|
@ -2146,8 +2146,11 @@ static netdev_tx_t nv_start_xmit(struct sk_buff *skb, struct net_device *dev)
|
||||
prev_tx = put_tx;
|
||||
prev_tx_ctx = np->put_tx_ctx;
|
||||
bcnt = (size > NV_TX2_TSO_MAX_SIZE) ? NV_TX2_TSO_MAX_SIZE : size;
|
||||
np->put_tx_ctx->dma = pci_map_page(np->pci_dev, frag->page, frag->page_offset+offset, bcnt,
|
||||
PCI_DMA_TODEVICE);
|
||||
np->put_tx_ctx->dma = skb_frag_dma_map(
|
||||
&np->pci_dev->dev,
|
||||
frag, offset,
|
||||
bcnt,
|
||||
PCI_DMA_TODEVICE);
|
||||
np->put_tx_ctx->dma_len = bcnt;
|
||||
np->put_tx_ctx->dma_single = 0;
|
||||
put_tx->buf = cpu_to_le32(np->put_tx_ctx->dma);
|
||||
@ -2257,8 +2260,11 @@ static netdev_tx_t nv_start_xmit_optimized(struct sk_buff *skb,
|
||||
prev_tx = put_tx;
|
||||
prev_tx_ctx = np->put_tx_ctx;
|
||||
bcnt = (size > NV_TX2_TSO_MAX_SIZE) ? NV_TX2_TSO_MAX_SIZE : size;
|
||||
np->put_tx_ctx->dma = pci_map_page(np->pci_dev, frag->page, frag->page_offset+offset, bcnt,
|
||||
PCI_DMA_TODEVICE);
|
||||
np->put_tx_ctx->dma = skb_frag_dma_map(
|
||||
&np->pci_dev->dev,
|
||||
frag, offset,
|
||||
bcnt,
|
||||
PCI_DMA_TODEVICE);
|
||||
np->put_tx_ctx->dma_len = bcnt;
|
||||
np->put_tx_ctx->dma_single = 0;
|
||||
put_tx->bufhigh = cpu_to_le32(dma_high(np->put_tx_ctx->dma));
|
||||
|
@ -784,8 +784,7 @@ static netdev_tx_t cp_start_xmit (struct sk_buff *skb,
|
||||
|
||||
len = this_frag->size;
|
||||
mapping = dma_map_single(&cp->pdev->dev,
|
||||
((void *) page_address(this_frag->page) +
|
||||
this_frag->page_offset),
|
||||
skb_frag_address(this_frag),
|
||||
len, PCI_DMA_TODEVICE);
|
||||
eor = (entry == (CP_TX_RING_SIZE - 1)) ? RingEnd : 0;
|
||||
|
||||
|
@ -2048,8 +2048,8 @@ static int cas_rx_process_pkt(struct cas *cp, struct cas_rx_comp *rxc,
|
||||
skb->truesize += hlen - swivel;
|
||||
skb->len += hlen - swivel;
|
||||
|
||||
get_page(page->buffer);
|
||||
frag->page = page->buffer;
|
||||
__skb_frag_set_page(frag, page->buffer);
|
||||
__skb_frag_ref(frag);
|
||||
frag->page_offset = off;
|
||||
frag->size = hlen - swivel;
|
||||
|
||||
@ -2072,8 +2072,8 @@ static int cas_rx_process_pkt(struct cas *cp, struct cas_rx_comp *rxc,
|
||||
skb->len += hlen;
|
||||
frag++;
|
||||
|
||||
get_page(page->buffer);
|
||||
frag->page = page->buffer;
|
||||
__skb_frag_set_page(frag, page->buffer);
|
||||
__skb_frag_ref(frag);
|
||||
frag->page_offset = 0;
|
||||
frag->size = hlen;
|
||||
RX_USED_ADD(page, hlen + cp->crc_size);
|
||||
@ -2830,9 +2830,8 @@ static inline int cas_xmit_tx_ringN(struct cas *cp, int ring,
|
||||
skb_frag_t *fragp = &skb_shinfo(skb)->frags[frag];
|
||||
|
||||
len = fragp->size;
|
||||
mapping = pci_map_page(cp->pdev, fragp->page,
|
||||
fragp->page_offset, len,
|
||||
PCI_DMA_TODEVICE);
|
||||
mapping = skb_frag_dma_map(&cp->pdev->dev, fragp, 0, len,
|
||||
PCI_DMA_TODEVICE);
|
||||
|
||||
tabort = cas_calc_tabort(cp, fragp->page_offset, len);
|
||||
if (unlikely(tabort)) {
|
||||
@ -2843,7 +2842,7 @@ static inline int cas_xmit_tx_ringN(struct cas *cp, int ring,
|
||||
ctrl, 0);
|
||||
entry = TX_DESC_NEXT(ring, entry);
|
||||
|
||||
addr = cas_page_map(fragp->page);
|
||||
addr = cas_page_map(skb_frag_page(fragp));
|
||||
memcpy(tx_tiny_buf(cp, ring, entry),
|
||||
addr + fragp->page_offset + len - tabort,
|
||||
tabort);
|
||||
|
Loading…
Reference in New Issue
Block a user