svn commit: r271648 - head/sys/dev/ixgbe
Adrian Chadd
adrian at FreeBSD.org
Mon Sep 15 20:54:13 UTC 2014
Author: adrian
Date: Mon Sep 15 20:54:12 2014
New Revision: 271648
URL: http://svnweb.freebsd.org/changeset/base/271648
Log:
The error bits are not valid with EOP=0; so intermediary fragments should
not be discarded.
Submitted by: Marc De La Gueronniere <mdelagueronniere at verisign.com>
MFC after: 1 week
Sponsored by: Verisign, Inc.
Modified:
head/sys/dev/ixgbe/ixgbe.c
head/sys/dev/ixgbe/ixgbe.h
Modified: head/sys/dev/ixgbe/ixgbe.c
==============================================================================
--- head/sys/dev/ixgbe/ixgbe.c Mon Sep 15 20:50:26 2014 (r271647)
+++ head/sys/dev/ixgbe/ixgbe.c Mon Sep 15 20:54:12 2014 (r271648)
@@ -4142,7 +4142,6 @@ ixgbe_setup_receive_ring(struct rx_ring
rxr->lro_enabled = FALSE;
rxr->rx_copies = 0;
rxr->rx_bytes = 0;
- rxr->discard = FALSE;
rxr->vtag_strip = FALSE;
bus_dmamap_sync(rxr->rxdma.dma_tag, rxr->rxdma.dma_map,
@@ -4618,13 +4617,8 @@ ixgbe_rxeof(struct ix_queue *que)
eop = ((staterr & IXGBE_RXD_STAT_EOP) != 0);
/* Make sure bad packets are discarded */
- if (((staterr & IXGBE_RXDADV_ERR_FRAME_ERR_MASK) != 0) ||
- (rxr->discard)) {
+ if (eop && (staterr & IXGBE_RXDADV_ERR_FRAME_ERR_MASK) != 0) {
rxr->rx_discarded++;
- if (eop)
- rxr->discard = FALSE;
- else
- rxr->discard = TRUE;
ixgbe_rx_discard(rxr, i);
goto next_desc;
}
Modified: head/sys/dev/ixgbe/ixgbe.h
==============================================================================
--- head/sys/dev/ixgbe/ixgbe.h Mon Sep 15 20:50:26 2014 (r271647)
+++ head/sys/dev/ixgbe/ixgbe.h Mon Sep 15 20:54:12 2014 (r271648)
@@ -331,7 +331,6 @@ struct rx_ring {
struct lro_ctrl lro;
bool lro_enabled;
bool hw_rsc;
- bool discard;
bool vtag_strip;
u16 next_to_refresh;
u16 next_to_check;
More information about the svn-src-head
mailing list