MCPcopy Create free account
hub / github.com/F-Stack/f-stack / iflib_fixup_rx

Function iflib_fixup_rx

freebsd/net/iflib.c:6875–6898  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

6873
6874#ifndef __NO_STRICT_ALIGNMENT
6875static struct mbuf *
6876iflib_fixup_rx(struct mbuf *m)
6877{
6878 struct mbuf *n;
6879
6880 if (m->m_len <= (MCLBYTES - ETHER_HDR_LEN)) {
6881 bcopy(m->m_data, m->m_data + ETHER_HDR_LEN, m->m_len);
6882 m->m_data += ETHER_HDR_LEN;
6883 n = m;
6884 } else {
6885 MGETHDR(n, M_NOWAIT, MT_DATA);
6886 if (n == NULL) {
6887 m_freem(m);
6888 return (NULL);
6889 }
6890 bcopy(m->m_data, n->m_data, ETHER_HDR_LEN);
6891 m->m_data += ETHER_HDR_LEN;
6892 m->m_len -= ETHER_HDR_LEN;
6893 n->m_len = ETHER_HDR_LEN;
6894 M_MOVE_PKTHDR(n, m);
6895 n->m_next = m;
6896 }
6897 return (n);
6898}
6899#endif
6900
6901#ifdef DEBUGNET

Callers 1

iflib_rxeofFunction · 0.85

Calls 1

m_freemFunction · 0.50

Tested by

no test coverage detected