summaryrefslogtreecommitdiffstats
path: root/sys/net/if_ethersubr.c
diff options
context:
space:
mode:
authorgallatin <gallatin@FreeBSD.org>2007-06-11 14:59:56 +0000
committergallatin <gallatin@FreeBSD.org>2007-06-11 14:59:56 +0000
commit219a5fe659b5f4ab5663414840ab571fc219f284 (patch)
tree10293235207f206563a818775acd4b19c869b6eb /sys/net/if_ethersubr.c
parentee7a5f8c9ad971d0919a0528c3073e4eae4ddcee (diff)
downloadFreeBSD-src-219a5fe659b5f4ab5663414840ab571fc219f284.zip
FreeBSD-src-219a5fe659b5f4ab5663414840ab571fc219f284.tar.gz
Allow drivers, such as cxgb and mxge, which support LRO to bypass
the MTU check in ether_input() on LRO merged frames. Discussed with: kmacy
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 1fabaca..41a2467 100644
--- a/sys/net/if_ethersubr.c
+++ b/sys/net/if_ethersubr.c
@@ -542,7 +542,8 @@ ether_input(struct ifnet *ifp, struct mbuf *m)
}
eh = mtod(m, struct ether_header *);
etype = ntohs(eh->ether_type);
- if (m->m_pkthdr.len >
+ if ((m->m_flags & M_LRO) == 0 &&
+ m->m_pkthdr.len >
ETHER_MAX_FRAME(ifp, etype, m->m_flags & M_HASFCS)) {
if_printf(ifp, "discard oversize frame "
"(ether type %x flags %x len %u > max %lu)\n",
OpenPOWER on IntegriCloud