Page MenuHomeFreeBSD

D33269.diff
No OneTemporary

D33269.diff

Index: sys/net/if_epair.c
===================================================================
--- sys/net/if_epair.c
+++ sys/net/if_epair.c
@@ -131,7 +131,10 @@
m = buf_ring_dequeue_sc(sc->rxring[ridx]);
if (m == NULL)
break;
-
+ if (__predict_false(m_rcvif_restore(m) == NULL)) {
+ m_freem(m);
+ continue;
+ }
MPASS((m->m_pkthdr.csum_flags & CSUM_SND_TAG) == 0);
(*ifp->if_input)(ifp, m);
@@ -193,6 +196,7 @@
M_ASSERTPKTHDR(m);
epair_clear_mbuf(m);
if_setrcvif(m, oifp);
+ m_rcvif_serialize(m);
M_SETFIB(m, oifp->if_fib);
/* Save values as once the mbuf is queued, it's not ours anymore. */

File Metadata

Mime Type
text/plain
Expires
Mon, May 18, 2:19 AM (9 h, 30 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
33229877
Default Alt Text
D33269.diff (628 B)

Event Timeline