diff --git a/sys/net/if_ethersubr.c b/sys/net/if_ethersubr.c index 8507d90521fd..22101e77f132 100644 --- a/sys/net/if_ethersubr.c +++ b/sys/net/if_ethersubr.c @@ -392,13 +392,13 @@ ether_output(ifp, m, dst, rt0) splx(s); senderr(ENOBUFS); } + if (m->m_flags & M_MCAST) + ifp->if_omcasts++; IF_ENQUEUE(&ifp->if_snd, m); if ((ifp->if_flags & IFF_OACTIVE) == 0) (*ifp->if_start)(ifp); splx(s); ifp->if_obytes += len + sizeof (struct ether_header); - if (m->m_flags & M_MCAST) - ifp->if_omcasts++; return (error); bad: @@ -1065,13 +1065,13 @@ ngether_rcvdata(hook_p hook, struct mbuf *m, meta_p meta, splx(s); senderr(ENOBUFS); } + ifp->if_obytes += m->m_pkthdr.len; + if (m->m_flags & M_MCAST) + ifp->if_omcasts++; IF_ENQUEUE(&ifp->if_snd, m); if ((ifp->if_flags & IFF_OACTIVE) == 0) (*ifp->if_start)(ifp); splx(s); - ifp->if_obytes += m->m_pkthdr.len; - if (m->m_flags & M_MCAST) - ifp->if_omcasts++; return (error); bad: diff --git a/sys/net/if_fddisubr.c b/sys/net/if_fddisubr.c index 21c10fcc97d5..b3a8ead3c526 100644 --- a/sys/net/if_fddisubr.c +++ b/sys/net/if_fddisubr.c @@ -357,12 +357,12 @@ fddi_output(ifp, m, dst, rt0) senderr(ENOBUFS); } ifp->if_obytes += m->m_pkthdr.len; + if (m->m_flags & M_MCAST) + ifp->if_omcasts++; IF_ENQUEUE(&ifp->if_snd, m); if ((ifp->if_flags & IFF_OACTIVE) == 0) (*ifp->if_start)(ifp); splx(s); - if (m->m_flags & M_MCAST) - ifp->if_omcasts++; return (error); bad: diff --git a/sys/net/if_iso88025subr.c b/sys/net/if_iso88025subr.c index 3dd47b893eff..cd2c2d98b3fc 100644 --- a/sys/net/if_iso88025subr.c +++ b/sys/net/if_iso88025subr.c @@ -306,13 +306,13 @@ iso88025_output(struct ifnet *ifp, struct mbuf *m, struct sockaddr *dst, struct splx(s); senderr(ENOBUFS); } + if (m->m_flags & M_MCAST) + ifp->if_omcasts++; IF_ENQUEUE(&ifp->if_snd, m); if ((ifp->if_flags & IFF_OACTIVE) == 0) (*ifp->if_start)(ifp); splx(s); ifp->if_obytes += len + ISO88025_HDR_LEN + 8; - if (m->m_flags & M_MCAST) - ifp->if_omcasts++; return (error); bad: