aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndrew Gallatin <gallatin@FreeBSD.org>2026-04-14 19:43:28 +0000
committerAndrew Gallatin <gallatin@FreeBSD.org>2026-04-14 19:43:28 +0000
commit956acdce0505ca8028d287d3b44789c623c8f37e (patch)
treecd5fc7cbb2a2e713f350a5a03ad4ea2354e2a4af
parentf707cc00ed124828e367b020d6b417842321f641 (diff)
-rw-r--r--sys/net/if_loop.c10
1 files changed, 7 insertions, 3 deletions
diff --git a/sys/net/if_loop.c b/sys/net/if_loop.c
index 37309260a0d3..2ff265d5d1e7 100644
--- a/sys/net/if_loop.c
+++ b/sys/net/if_loop.c
@@ -350,9 +350,13 @@ if_simloop(struct ifnet *ifp, struct mbuf *m, int af, int hlen)
m_freem(m);
return (EAFNOSUPPORT);
}
- if_inc_counter(ifp, IFCOUNTER_IPACKETS, 1);
- if_inc_counter(ifp, IFCOUNTER_IBYTES, m->m_pkthdr.len);
- netisr_queue(isr, m); /* mbuf is free'd on failure. */
+ if (netisr_queue(isr, m) == 0) {
+ if_inc_counter(ifp, IFCOUNTER_IPACKETS, 1);
+ if_inc_counter(ifp, IFCOUNTER_IBYTES, m->m_pkthdr.len);
+ } else {
+ /* mbuf is free'd on failure. */
+ if_inc_counter(ifp, IFCOUNTER_IQDROPS, 1);
+ }
return (0);
}