Skip to content

Commit

Permalink
[PATCH] ixgb: Reset status in the Rx
Browse files Browse the repository at this point in the history
Reset status in the Rx descriptor prior to handing it to the controller.
Leave three Rx descriptors unused

Signed-off-by: Mallikarjuna R Chilakala <mallikarjuna.chilakala@intel.com>
Signed-off-by: Ganesh Venkatesan <ganesh.venkatesan@intel.com>
Signed-off-by: John Ronciak <john.ronciak@intel.com>

diff -up net-drivers-2.6/drivers/net/ixgb/ixgb_main.c net-drivers-2.6/drivers/net/ixgb.new/ixgb_main.c
  • Loading branch information
Malli Chilakala authored and Jeff Garzik committed May 13, 2005
1 parent 6dfbb6d commit 41639fe
Showing 1 changed file with 6 additions and 2 deletions.
8 changes: 6 additions & 2 deletions drivers/net/ixgb/ixgb_main.c
Original file line number Diff line number Diff line change
Expand Up @@ -1977,8 +1977,8 @@ ixgb_alloc_rx_buffers(struct ixgb_adapter *adapter)

num_group_tail_writes = IXGB_RX_BUFFER_WRITE;

/* leave one descriptor unused */
while(--cleancount > 0) {
/* leave three descriptors unused */
while(--cleancount > 2) {
rx_desc = IXGB_RX_DESC(*rx_ring, i);

skb = dev_alloc_skb(adapter->rx_buffer_len + NET_IP_ALIGN);
Expand All @@ -2005,6 +2005,10 @@ ixgb_alloc_rx_buffers(struct ixgb_adapter *adapter)
PCI_DMA_FROMDEVICE);

rx_desc->buff_addr = cpu_to_le64(buffer_info->dma);
/* guarantee DD bit not set now before h/w gets descriptor
* this is the rest of the workaround for h/w double
* writeback. */
rx_desc->status = 0;

if((i & ~(num_group_tail_writes- 1)) == i) {
/* Force memory writes to complete before letting h/w
Expand Down

0 comments on commit 41639fe

Please sign in to comment.