summaryrefslogtreecommitdiffstats
path: root/sys/net/if_ethersubr.c
diff options
context:
space:
mode:
authorgallatin <gallatin@FreeBSD.org>2007-06-12 19:53:44 +0000
committergallatin <gallatin@FreeBSD.org>2007-06-12 19:53:44 +0000
commit1dc9ad2cb932264d7764537f9ffc46d9a6979935 (patch)
tree7378008d5410528e85b2416c14a9f45de73a7115 /sys/net/if_ethersubr.c
parenta86c52513f431b9572d789eed1960290bb801226 (diff)
downloadFreeBSD-src-1dc9ad2cb932264d7764537f9ffc46d9a6979935.zip
FreeBSD-src-1dc9ad2cb932264d7764537f9ffc46d9a6979935.tar.gz
Use if_capenable to allow LRO enabled drivers to bypass
the MTU check in ether_input().
Diffstat (limited to 'sys/net/if_ethersubr.c')
-rw-r--r--sys/net/if_ethersubr.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/sys/net/if_ethersubr.c b/sys/net/if_ethersubr.c
index 8615e86..29014fa 100644
--- a/sys/net/if_ethersubr.c
+++ b/sys/net/if_ethersubr.c
@@ -544,7 +544,8 @@ ether_input(struct ifnet *ifp, struct mbuf *m)
etype = ntohs(eh->ether_type);
#ifdef DIAGNOSTIC
if (m->m_pkthdr.len >
- ETHER_MAX_FRAME(ifp, etype, m->m_flags & M_HASFCS)) {
+ ETHER_MAX_FRAME(ifp, etype, m->m_flags & M_HASFCS) &&
+ (ifp->if_capenable & IFCAP_LRO) == 0) {
if_printf(ifp, "discard oversize frame "
"(ether type %x flags %x len %u > max %lu)\n",
etype, m->m_flags, m->m_pkthdr.len,
OpenPOWER on IntegriCloud