summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorjfv <jfv@FreeBSD.org>2010-12-04 01:43:38 +0000
committerjfv <jfv@FreeBSD.org>2010-12-04 01:43:38 +0000
commit0aa625fd3eabc94d04a6f62212d07b95cbbb1fc4 (patch)
tree71cc74995f6d17f57c1007f91d66eec297b7a620
parentc042df181c1d57a6c9892c4f6724b9cd21518aac (diff)
downloadFreeBSD-src-0aa625fd3eabc94d04a6f62212d07b95cbbb1fc4.zip
FreeBSD-src-0aa625fd3eabc94d04a6f62212d07b95cbbb1fc4.tar.gz
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
-rw-r--r--sys/dev/ixgbe/ixgbe.c6
1 files changed, 1 insertions, 5 deletions
diff --git a/sys/dev/ixgbe/ixgbe.c b/sys/dev/ixgbe/ixgbe.c
index 338172a..e246bf3 100644
--- a/sys/dev/ixgbe/ixgbe.c
+++ b/sys/dev/ixgbe/ixgbe.c
@@ -46,7 +46,7 @@ int ixgbe_display_debug_stats = 0;
/*********************************************************************
* 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, struct mbuf *mp)
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;
OpenPOWER on IntegriCloud