diff options
author | gallatin <gallatin@FreeBSD.org> | 2007-06-12 19:53:44 +0000 |
---|---|---|
committer | gallatin <gallatin@FreeBSD.org> | 2007-06-12 19:53:44 +0000 |
commit | 1dc9ad2cb932264d7764537f9ffc46d9a6979935 (patch) | |
tree | 7378008d5410528e85b2416c14a9f45de73a7115 /sys | |
parent | a86c52513f431b9572d789eed1960290bb801226 (diff) | |
download | FreeBSD-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')
-rw-r--r-- | sys/net/if_ethersubr.c | 3 |
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, |