Changeset View
Changeset View
Standalone View
Standalone View
sys/kern/kern_mbuf.c
Show First 20 Lines • Show All 1,644 Lines • ▼ Show 20 Lines | m_rcvif_serialize(struct mbuf *m) | ||||
gen = m->m_pkthdr.rcvif->if_idxgen; | gen = m->m_pkthdr.rcvif->if_idxgen; | ||||
m->m_pkthdr.rcvidx = idx; | m->m_pkthdr.rcvidx = idx; | ||||
m->m_pkthdr.rcvgen = gen; | m->m_pkthdr.rcvgen = gen; | ||||
} | } | ||||
struct ifnet * | struct ifnet * | ||||
m_rcvif_restore(struct mbuf *m) | m_rcvif_restore(struct mbuf *m) | ||||
{ | { | ||||
struct ifnet *ifp; | |||||
M_ASSERTPKTHDR(m); | M_ASSERTPKTHDR(m); | ||||
NET_EPOCH_ASSERT(); | |||||
return ((m->m_pkthdr.rcvif = ifnet_byindexgen(m->m_pkthdr.rcvidx, | ifp = ifnet_byindexgen(m->m_pkthdr.rcvidx, m->m_pkthdr.rcvgen); | ||||
m->m_pkthdr.rcvgen))); | if (ifp == NULL || (ifp->if_flags & IFF_DYING)) | ||||
return (NULL); | |||||
return (m->m_pkthdr.rcvif = ifp); | |||||
} | } | ||||
/* | /* | ||||
* Allocate an mbuf with anonymous external pages. | * Allocate an mbuf with anonymous external pages. | ||||
*/ | */ | ||||
struct mbuf * | struct mbuf * | ||||
mb_alloc_ext_plus_pages(int len, int how) | mb_alloc_ext_plus_pages(int len, int how) | ||||
{ | { | ||||
▲ Show 20 Lines • Show All 94 Lines • Show Last 20 Lines |