svn commit: r216171 - head/sys/dev/ixgbe

Jack F Vogel jfv at FreeBSD.org
Sat Dec 4 01:43:38 UTC 2010


Author: jfv
Date: Sat Dec  4 01:43:38 2010
New Revision: 216171
URL: http://svn.freebsd.org/changeset/base/216171

Log:
  This small little change is a bug that drove me nuts
  finding. The test to compare the mbuf m_len against
  a fixed value and then returning needs to be removed.
  
  When using VLANS and doing HW_TAGGING, and IPV6, the
  ICMP6 packets actually fail this condition, the constant
  assumes that the tag is IN the frame, and its not, so
  the length is actually tiny. Furthermore, I'm not sure
  what the point was to just return??
  
  MFC after: 3 days

Modified:
  head/sys/dev/ixgbe/ixgbe.c

Modified: head/sys/dev/ixgbe/ixgbe.c
==============================================================================
--- head/sys/dev/ixgbe/ixgbe.c	Sat Dec  4 00:43:21 2010	(r216170)
+++ head/sys/dev/ixgbe/ixgbe.c	Sat Dec  4 01:43:38 2010	(r216171)
@@ -46,7 +46,7 @@ int             ixgbe_display_debug_stat
 /*********************************************************************
  *  Driver version
  *********************************************************************/
-char ixgbe_driver_version[] = "2.3.6";
+char ixgbe_driver_version[] = "2.3.7";
 
 /*********************************************************************
  *  PCI Device ID Table
@@ -3023,16 +3023,12 @@ ixgbe_tx_ctx_setup(struct tx_ring *txr, 
 		case ETHERTYPE_IP:
 			ip = (struct ip *)(mp->m_data + ehdrlen);
 			ip_hlen = ip->ip_hl << 2;
-			if (mp->m_len < ehdrlen + ip_hlen)
-				return (FALSE);
 			ipproto = ip->ip_p;
 			type_tucmd_mlhl |= IXGBE_ADVTXD_TUCMD_IPV4;
 			break;
 		case ETHERTYPE_IPV6:
 			ip6 = (struct ip6_hdr *)(mp->m_data + ehdrlen);
 			ip_hlen = sizeof(struct ip6_hdr);
-			if (mp->m_len < ehdrlen + ip_hlen)
-				return (FALSE);
 			ipproto = ip6->ip6_nxt;
 			type_tucmd_mlhl |= IXGBE_ADVTXD_TUCMD_IPV6;
 			break;


More information about the svn-src-head mailing list