diff options
| author | Andrew Gallatin <gallatin@FreeBSD.org> | 2026-04-14 19:43:28 +0000 |
|---|---|---|
| committer | Andrew Gallatin <gallatin@FreeBSD.org> | 2026-04-14 19:43:28 +0000 |
| commit | 956acdce0505ca8028d287d3b44789c623c8f37e (patch) | |
| tree | cd5fc7cbb2a2e713f350a5a03ad4ea2354e2a4af | |
| parent | f707cc00ed124828e367b020d6b417842321f641 (diff) | |
| -rw-r--r-- | sys/net/if_loop.c | 10 |
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); } |
