Signed-off-by: Felix Fietkau <nbd@openwrt.org>
SVN-Revision: 48580
unsigned int phys;
for (received += rx_ring->alloc_count; received > 0; received--) {
unsigned int phys;
for (received += rx_ring->alloc_count; received > 0; received--) {
- buf = kmalloc(RX_SEGMENT_ALLOC_SIZE, GFP_ATOMIC);
+ buf = napi_alloc_frag(RX_SEGMENT_ALLOC_SIZE);
if (!buf)
break;
phys = dma_map_single(sw->dev, buf + SKB_HEAD_ALIGN,
RX_SEGMENT_MRU, DMA_FROM_DEVICE);
if (dma_mapping_error(sw->dev, phys)) {
if (!buf)
break;
phys = dma_map_single(sw->dev, buf + SKB_HEAD_ALIGN,
RX_SEGMENT_MRU, DMA_FROM_DEVICE);
if (dma_mapping_error(sw->dev, phys)) {
dma_unmap_single(sw->dev, rx_ring->phys_tab[i],
RX_SEGMENT_MRU, DMA_FROM_DEVICE);
dma_unmap_single(sw->dev, rx_ring->phys_tab[i],
RX_SEGMENT_MRU, DMA_FROM_DEVICE);
- skb = build_skb(rx_ring->buff_tab[i], 0);
+ skb = build_skb(rx_ring->buff_tab[i], RX_SEGMENT_ALLOC_SIZE);
struct rx_desc *desc = &(rx_ring)->desc[i];
void *buf;
struct rx_desc *desc = &(rx_ring)->desc[i];
void *buf;
- buf = kzalloc(RX_SEGMENT_ALLOC_SIZE, GFP_KERNEL);
+ buf = netdev_alloc_frag(RX_SEGMENT_ALLOC_SIZE);
if (!buf)
return -ENOMEM;
if (!buf)
return -ENOMEM;
for (i = 0; i < RX_DESCS; i++) {
struct _rx_ring *rx_ring = &sw->rx_ring;
struct rx_desc *desc = &(rx_ring)->desc[i];
for (i = 0; i < RX_DESCS; i++) {
struct _rx_ring *rx_ring = &sw->rx_ring;
struct rx_desc *desc = &(rx_ring)->desc[i];
- struct sk_buff *skb = sw->rx_ring.buff_tab[i];
+ void *buf = sw->rx_ring.buff_tab[i];
continue;
dma_unmap_single(sw->dev, desc->sdp, RX_SEGMENT_MRU,
DMA_FROM_DEVICE);
continue;
dma_unmap_single(sw->dev, desc->sdp, RX_SEGMENT_MRU,
DMA_FROM_DEVICE);
}
for (i = 0; i < TX_DESCS; i++) {
}
for (i = 0; i < TX_DESCS; i++) {