myri10ge: use the DMA state API instead of the pci equivalents
This replace the PCI DMA state API (include/linux/pci-dma.h) with the DMA equivalents since the PCI DMA state API will be obsolete. No functional change. For further information about the background: http://marc.info/?l=linux-netdev&m=127037540020276&w=2 Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp> Cc: Andrew Gallatin <gallatin@myri.com> Cc: Brice Goglin <brice@myri.com> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
Родитель
64b9b41de8
Коммит
c755b4b625
|
@ -110,15 +110,15 @@ MODULE_LICENSE("Dual BSD/GPL");
|
||||||
struct myri10ge_rx_buffer_state {
|
struct myri10ge_rx_buffer_state {
|
||||||
struct page *page;
|
struct page *page;
|
||||||
int page_offset;
|
int page_offset;
|
||||||
DECLARE_PCI_UNMAP_ADDR(bus)
|
DEFINE_DMA_UNMAP_ADDR(bus);
|
||||||
DECLARE_PCI_UNMAP_LEN(len)
|
DEFINE_DMA_UNMAP_LEN(len);
|
||||||
};
|
};
|
||||||
|
|
||||||
struct myri10ge_tx_buffer_state {
|
struct myri10ge_tx_buffer_state {
|
||||||
struct sk_buff *skb;
|
struct sk_buff *skb;
|
||||||
int last;
|
int last;
|
||||||
DECLARE_PCI_UNMAP_ADDR(bus)
|
DEFINE_DMA_UNMAP_ADDR(bus);
|
||||||
DECLARE_PCI_UNMAP_LEN(len)
|
DEFINE_DMA_UNMAP_LEN(len);
|
||||||
};
|
};
|
||||||
|
|
||||||
struct myri10ge_cmd {
|
struct myri10ge_cmd {
|
||||||
|
@ -1234,7 +1234,7 @@ myri10ge_alloc_rx_pages(struct myri10ge_priv *mgp, struct myri10ge_rx_buf *rx,
|
||||||
rx->info[idx].page_offset = rx->page_offset;
|
rx->info[idx].page_offset = rx->page_offset;
|
||||||
/* note that this is the address of the start of the
|
/* note that this is the address of the start of the
|
||||||
* page */
|
* page */
|
||||||
pci_unmap_addr_set(&rx->info[idx], bus, rx->bus);
|
dma_unmap_addr_set(&rx->info[idx], bus, rx->bus);
|
||||||
rx->shadow[idx].addr_low =
|
rx->shadow[idx].addr_low =
|
||||||
htonl(MYRI10GE_LOWPART_TO_U32(rx->bus) + rx->page_offset);
|
htonl(MYRI10GE_LOWPART_TO_U32(rx->bus) + rx->page_offset);
|
||||||
rx->shadow[idx].addr_high =
|
rx->shadow[idx].addr_high =
|
||||||
|
@ -1266,7 +1266,7 @@ myri10ge_unmap_rx_page(struct pci_dev *pdev,
|
||||||
/* unmap the recvd page if we're the only or last user of it */
|
/* unmap the recvd page if we're the only or last user of it */
|
||||||
if (bytes >= MYRI10GE_ALLOC_SIZE / 2 ||
|
if (bytes >= MYRI10GE_ALLOC_SIZE / 2 ||
|
||||||
(info->page_offset + 2 * bytes) > MYRI10GE_ALLOC_SIZE) {
|
(info->page_offset + 2 * bytes) > MYRI10GE_ALLOC_SIZE) {
|
||||||
pci_unmap_page(pdev, (pci_unmap_addr(info, bus)
|
pci_unmap_page(pdev, (dma_unmap_addr(info, bus)
|
||||||
& ~(MYRI10GE_ALLOC_SIZE - 1)),
|
& ~(MYRI10GE_ALLOC_SIZE - 1)),
|
||||||
MYRI10GE_ALLOC_SIZE, PCI_DMA_FROMDEVICE);
|
MYRI10GE_ALLOC_SIZE, PCI_DMA_FROMDEVICE);
|
||||||
}
|
}
|
||||||
|
@ -1373,21 +1373,21 @@ myri10ge_tx_done(struct myri10ge_slice_state *ss, int mcp_index)
|
||||||
tx->info[idx].last = 0;
|
tx->info[idx].last = 0;
|
||||||
}
|
}
|
||||||
tx->done++;
|
tx->done++;
|
||||||
len = pci_unmap_len(&tx->info[idx], len);
|
len = dma_unmap_len(&tx->info[idx], len);
|
||||||
pci_unmap_len_set(&tx->info[idx], len, 0);
|
dma_unmap_len_set(&tx->info[idx], len, 0);
|
||||||
if (skb) {
|
if (skb) {
|
||||||
ss->stats.tx_bytes += skb->len;
|
ss->stats.tx_bytes += skb->len;
|
||||||
ss->stats.tx_packets++;
|
ss->stats.tx_packets++;
|
||||||
dev_kfree_skb_irq(skb);
|
dev_kfree_skb_irq(skb);
|
||||||
if (len)
|
if (len)
|
||||||
pci_unmap_single(pdev,
|
pci_unmap_single(pdev,
|
||||||
pci_unmap_addr(&tx->info[idx],
|
dma_unmap_addr(&tx->info[idx],
|
||||||
bus), len,
|
bus), len,
|
||||||
PCI_DMA_TODEVICE);
|
PCI_DMA_TODEVICE);
|
||||||
} else {
|
} else {
|
||||||
if (len)
|
if (len)
|
||||||
pci_unmap_page(pdev,
|
pci_unmap_page(pdev,
|
||||||
pci_unmap_addr(&tx->info[idx],
|
dma_unmap_addr(&tx->info[idx],
|
||||||
bus), len,
|
bus), len,
|
||||||
PCI_DMA_TODEVICE);
|
PCI_DMA_TODEVICE);
|
||||||
}
|
}
|
||||||
|
@ -2094,20 +2094,20 @@ static void myri10ge_free_rings(struct myri10ge_slice_state *ss)
|
||||||
/* Mark as free */
|
/* Mark as free */
|
||||||
tx->info[idx].skb = NULL;
|
tx->info[idx].skb = NULL;
|
||||||
tx->done++;
|
tx->done++;
|
||||||
len = pci_unmap_len(&tx->info[idx], len);
|
len = dma_unmap_len(&tx->info[idx], len);
|
||||||
pci_unmap_len_set(&tx->info[idx], len, 0);
|
dma_unmap_len_set(&tx->info[idx], len, 0);
|
||||||
if (skb) {
|
if (skb) {
|
||||||
ss->stats.tx_dropped++;
|
ss->stats.tx_dropped++;
|
||||||
dev_kfree_skb_any(skb);
|
dev_kfree_skb_any(skb);
|
||||||
if (len)
|
if (len)
|
||||||
pci_unmap_single(mgp->pdev,
|
pci_unmap_single(mgp->pdev,
|
||||||
pci_unmap_addr(&tx->info[idx],
|
dma_unmap_addr(&tx->info[idx],
|
||||||
bus), len,
|
bus), len,
|
||||||
PCI_DMA_TODEVICE);
|
PCI_DMA_TODEVICE);
|
||||||
} else {
|
} else {
|
||||||
if (len)
|
if (len)
|
||||||
pci_unmap_page(mgp->pdev,
|
pci_unmap_page(mgp->pdev,
|
||||||
pci_unmap_addr(&tx->info[idx],
|
dma_unmap_addr(&tx->info[idx],
|
||||||
bus), len,
|
bus), len,
|
||||||
PCI_DMA_TODEVICE);
|
PCI_DMA_TODEVICE);
|
||||||
}
|
}
|
||||||
|
@ -2761,8 +2761,8 @@ again:
|
||||||
idx = tx->req & tx->mask;
|
idx = tx->req & tx->mask;
|
||||||
tx->info[idx].skb = skb;
|
tx->info[idx].skb = skb;
|
||||||
bus = pci_map_single(mgp->pdev, skb->data, len, PCI_DMA_TODEVICE);
|
bus = pci_map_single(mgp->pdev, skb->data, len, PCI_DMA_TODEVICE);
|
||||||
pci_unmap_addr_set(&tx->info[idx], bus, bus);
|
dma_unmap_addr_set(&tx->info[idx], bus, bus);
|
||||||
pci_unmap_len_set(&tx->info[idx], len, len);
|
dma_unmap_len_set(&tx->info[idx], len, len);
|
||||||
|
|
||||||
frag_cnt = skb_shinfo(skb)->nr_frags;
|
frag_cnt = skb_shinfo(skb)->nr_frags;
|
||||||
frag_idx = 0;
|
frag_idx = 0;
|
||||||
|
@ -2865,8 +2865,8 @@ again:
|
||||||
len = frag->size;
|
len = frag->size;
|
||||||
bus = pci_map_page(mgp->pdev, frag->page, frag->page_offset,
|
bus = pci_map_page(mgp->pdev, frag->page, frag->page_offset,
|
||||||
len, PCI_DMA_TODEVICE);
|
len, PCI_DMA_TODEVICE);
|
||||||
pci_unmap_addr_set(&tx->info[idx], bus, bus);
|
dma_unmap_addr_set(&tx->info[idx], bus, bus);
|
||||||
pci_unmap_len_set(&tx->info[idx], len, len);
|
dma_unmap_len_set(&tx->info[idx], len, len);
|
||||||
}
|
}
|
||||||
|
|
||||||
(req - rdma_count)->rdma_count = rdma_count;
|
(req - rdma_count)->rdma_count = rdma_count;
|
||||||
|
@ -2903,19 +2903,19 @@ abort_linearize:
|
||||||
idx = tx->req & tx->mask;
|
idx = tx->req & tx->mask;
|
||||||
tx->info[idx].skb = NULL;
|
tx->info[idx].skb = NULL;
|
||||||
do {
|
do {
|
||||||
len = pci_unmap_len(&tx->info[idx], len);
|
len = dma_unmap_len(&tx->info[idx], len);
|
||||||
if (len) {
|
if (len) {
|
||||||
if (tx->info[idx].skb != NULL)
|
if (tx->info[idx].skb != NULL)
|
||||||
pci_unmap_single(mgp->pdev,
|
pci_unmap_single(mgp->pdev,
|
||||||
pci_unmap_addr(&tx->info[idx],
|
dma_unmap_addr(&tx->info[idx],
|
||||||
bus), len,
|
bus), len,
|
||||||
PCI_DMA_TODEVICE);
|
PCI_DMA_TODEVICE);
|
||||||
else
|
else
|
||||||
pci_unmap_page(mgp->pdev,
|
pci_unmap_page(mgp->pdev,
|
||||||
pci_unmap_addr(&tx->info[idx],
|
dma_unmap_addr(&tx->info[idx],
|
||||||
bus), len,
|
bus), len,
|
||||||
PCI_DMA_TODEVICE);
|
PCI_DMA_TODEVICE);
|
||||||
pci_unmap_len_set(&tx->info[idx], len, 0);
|
dma_unmap_len_set(&tx->info[idx], len, 0);
|
||||||
tx->info[idx].skb = NULL;
|
tx->info[idx].skb = NULL;
|
||||||
}
|
}
|
||||||
idx = (idx + 1) & tx->mask;
|
idx = (idx + 1) & tx->mask;
|
||||||
|
|
Загрузка…
Ссылка в новой задаче