Lines 751-770
jme_make_new_rx_buf(struct jme_adapter *jme, int i)
Link Here
|
751 |
struct jme_ring *rxring = &(jme->rxring[0]); |
751 |
struct jme_ring *rxring = &(jme->rxring[0]); |
752 |
struct jme_buffer_info *rxbi = rxring->bufinf + i; |
752 |
struct jme_buffer_info *rxbi = rxring->bufinf + i; |
753 |
struct sk_buff *skb; |
753 |
struct sk_buff *skb; |
|
|
754 |
dma_addr_t mapping; |
754 |
|
755 |
|
755 |
skb = netdev_alloc_skb(jme->dev, |
756 |
skb = netdev_alloc_skb(jme->dev, |
756 |
jme->dev->mtu + RX_EXTRA_LEN); |
757 |
jme->dev->mtu + RX_EXTRA_LEN); |
757 |
if (unlikely(!skb)) |
758 |
if (unlikely(!skb)) |
758 |
return -ENOMEM; |
759 |
return -ENOMEM; |
759 |
|
760 |
|
|
|
761 |
mapping = pci_map_page(jme->pdev, virt_to_page(skb->data), |
762 |
offset_in_page(skb->data), skb_tailroom(skb), |
763 |
PCI_DMA_FROMDEVICE); |
764 |
if (unlikely(pci_dma_mapping_error(jme->pdev, mapping))) { |
765 |
dev_kfree_skb(skb); |
766 |
return -ENOMEM; |
767 |
} |
768 |
|
769 |
if (likely(rxbi->mapping)) |
770 |
pci_unmap_page(jme->pdev, rxbi->mapping, |
771 |
rxbi->len, PCI_DMA_FROMDEVICE); |
772 |
|
760 |
rxbi->skb = skb; |
773 |
rxbi->skb = skb; |
761 |
rxbi->len = skb_tailroom(skb); |
774 |
rxbi->len = skb_tailroom(skb); |
762 |
rxbi->mapping = pci_map_page(jme->pdev, |
775 |
rxbi->mapping = mapping; |
763 |
virt_to_page(skb->data), |
|
|
764 |
offset_in_page(skb->data), |
765 |
rxbi->len, |
766 |
PCI_DMA_FROMDEVICE); |
767 |
|
768 |
return 0; |
776 |
return 0; |
769 |
} |
777 |
} |
770 |
|
778 |
|