Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 21259
b: refs/heads/master
c: 30320be
h: refs/heads/master
i:
  21257: eb6ea0f
  21255: 94e8202
v: v3
  • Loading branch information
Jeff Kirsher authored and root committed Mar 3, 2006
1 parent fb639df commit 34c498e
Show file tree
Hide file tree
Showing 2 changed files with 16 additions and 4 deletions.
2 changes: 1 addition & 1 deletion [refs]
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
---
refs/heads/master: dc7c6add3493cdc71475a006b7afc3732e55abd8
refs/heads/master: 30320be88fb9cae888eacf1f1eaae95a03720128
18 changes: 15 additions & 3 deletions trunk/drivers/net/e1000/e1000_main.c
Original file line number Diff line number Diff line change
Expand Up @@ -3569,10 +3569,15 @@ e1000_clean_rx_irq(struct e1000_adapter *adapter,
skb = buffer_info->skb;
buffer_info->skb = NULL;

prefetch(skb->data - NET_IP_ALIGN);

if (++i == rx_ring->count) i = 0;
next_rxd = E1000_RX_DESC(*rx_ring, i);
prefetch(next_rxd);

next_buffer = &rx_ring->buffer_info[i];
next_skb = next_buffer->skb;
prefetch(next_skb->data - NET_IP_ALIGN);

cleaned = TRUE;
cleaned_count++;
Expand Down Expand Up @@ -3668,6 +3673,7 @@ e1000_clean_rx_irq(struct e1000_adapter *adapter,
cleaned_count = 0;
}

/* use prefetched values */
rx_desc = next_rxd;
buffer_info = next_buffer;
}
Expand Down Expand Up @@ -3710,9 +3716,9 @@ e1000_clean_rx_irq_ps(struct e1000_adapter *adapter,
i = rx_ring->next_to_clean;
rx_desc = E1000_RX_DESC_PS(*rx_ring, i);
staterr = le32_to_cpu(rx_desc->wb.middle.status_error);
buffer_info = &rx_ring->buffer_info[i];

while (staterr & E1000_RXD_STAT_DD) {
buffer_info = &rx_ring->buffer_info[i];
ps_page = &rx_ring->ps_page[i];
ps_page_dma = &rx_ring->ps_page_dma[i];
#ifdef CONFIG_E1000_NAPI
Expand All @@ -3722,10 +3728,16 @@ e1000_clean_rx_irq_ps(struct e1000_adapter *adapter,
#endif
skb = buffer_info->skb;

/* in the packet split case this is header only */
prefetch(skb->data - NET_IP_ALIGN);

if (++i == rx_ring->count) i = 0;
next_rxd = E1000_RX_DESC_PS(*rx_ring, i);
prefetch(next_rxd);

next_buffer = &rx_ring->buffer_info[i];
next_skb = next_buffer->skb;
prefetch(next_skb->data - NET_IP_ALIGN);

cleaned = TRUE;
cleaned_count++;
Expand Down Expand Up @@ -3787,9 +3799,8 @@ e1000_clean_rx_irq_ps(struct e1000_adapter *adapter,
}

for (j = 0; j < adapter->rx_ps_pages; j++) {
if (!(length = le16_to_cpu(rx_desc->wb.upper.length[j])))
if (!(length= le16_to_cpu(rx_desc->wb.upper.length[j])))
break;

pci_unmap_page(pdev, ps_page_dma->ps_page_dma[j],
PAGE_SIZE, PCI_DMA_FROMDEVICE);
ps_page_dma->ps_page_dma[j] = 0;
Expand Down Expand Up @@ -3837,6 +3848,7 @@ e1000_clean_rx_irq_ps(struct e1000_adapter *adapter,
cleaned_count = 0;
}

/* use prefetched values */
rx_desc = next_rxd;
buffer_info = next_buffer;

Expand Down

0 comments on commit 34c498e

Please sign in to comment.