Author: adrian
Date: Sat Oct 11 22:09:46 2014
New Revision: 272966
URL: https://svnweb.freebsd.org/changeset/base/272966

Log:
  MFC r271648 - The error bits are not valid with EOP=0; so intermediary
  fragments should not be discarded.
  
  Submitted by: Marc De La Gueronniere <mdelagueronni...@verisign.com>
  Sponsored by: Verisign, Inc.

Modified:
  stable/10/sys/dev/ixgbe/ixgbe.c
  stable/10/sys/dev/ixgbe/ixgbe.h
Directory Properties:
  stable/10/   (props changed)

Modified: stable/10/sys/dev/ixgbe/ixgbe.c
==============================================================================
--- stable/10/sys/dev/ixgbe/ixgbe.c     Sat Oct 11 22:08:53 2014        
(r272965)
+++ stable/10/sys/dev/ixgbe/ixgbe.c     Sat Oct 11 22:09:46 2014        
(r272966)
@@ -4062,7 +4062,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,
@@ -4461,13 +4460,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: stable/10/sys/dev/ixgbe/ixgbe.h
==============================================================================
--- stable/10/sys/dev/ixgbe/ixgbe.h     Sat Oct 11 22:08:53 2014        
(r272965)
+++ stable/10/sys/dev/ixgbe/ixgbe.h     Sat Oct 11 22:09:46 2014        
(r272966)
@@ -341,7 +341,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;
_______________________________________________
svn-src-all@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/svn-src-all
To unsubscribe, send any mail to "svn-src-all-unsubscr...@freebsd.org"

Reply via email to