diff options
Diffstat (limited to 'freebsd/sys/net/if_atmsubr.c')
-rw-r--r-- | freebsd/sys/net/if_atmsubr.c | 15 |
1 files changed, 8 insertions, 7 deletions
diff --git a/freebsd/sys/net/if_atmsubr.c b/freebsd/sys/net/if_atmsubr.c index a4cbeb09..fff233c4 100644 --- a/freebsd/sys/net/if_atmsubr.c +++ b/freebsd/sys/net/if_atmsubr.c @@ -55,6 +55,7 @@ __FBSDID("$FreeBSD$"); #include <sys/malloc.h> #include <net/if.h> +#include <net/if_var.h> #include <net/netisr.h> #include <net/route.h> #include <net/if_dl.h> @@ -123,7 +124,7 @@ static MALLOC_DEFINE(M_IFATM, "ifatm", "atm interface internals"); * ro->ro_rt must also be NULL. */ int -atm_output(struct ifnet *ifp, struct mbuf *m0, struct sockaddr *dst, +atm_output(struct ifnet *ifp, struct mbuf *m0, const struct sockaddr *dst, struct route *ro) { u_int16_t etype = 0; /* if using LLC/SNAP */ @@ -131,7 +132,7 @@ atm_output(struct ifnet *ifp, struct mbuf *m0, struct sockaddr *dst, struct atm_pseudohdr atmdst, *ad; struct mbuf *m = m0; struct atmllc *atmllc; - struct atmllc *llc_hdr = NULL; + const struct atmllc *llc_hdr = NULL; u_int32_t atm_flags; #ifdef MAC @@ -175,7 +176,7 @@ atm_output(struct ifnet *ifp, struct mbuf *m0, struct sockaddr *dst, * (atm pseudo header (4) + LLC/SNAP (8)) */ bcopy(dst->sa_data, &atmdst, sizeof(atmdst)); - llc_hdr = (struct atmllc *)(dst->sa_data + + llc_hdr = (const struct atmllc *)(dst->sa_data + sizeof(atmdst)); break; @@ -192,8 +193,8 @@ atm_output(struct ifnet *ifp, struct mbuf *m0, struct sockaddr *dst, atm_flags = ATM_PH_FLAGS(&atmdst); if (atm_flags & ATM_PH_LLCSNAP) sz += 8; /* sizeof snap == 8 */ - M_PREPEND(m, sz, M_DONTWAIT); - if (m == 0) + M_PREPEND(m, sz, M_NOWAIT); + if (m == NULL) senderr(ENOBUFS); ad = mtod(m, struct atm_pseudohdr *); *ad = atmdst; @@ -253,7 +254,7 @@ atm_input(struct ifnet *ifp, struct atm_pseudohdr *ah, struct mbuf *m, #ifdef MAC mac_ifnet_create_mbuf(ifp, m); #endif - ifp->if_ibytes += m->m_pkthdr.len; + if_inc_counter(ifp, IFCOUNTER_IBYTES, m->m_pkthdr.len); if (ng_atm_input_p != NULL) { (*ng_atm_input_p)(ifp, &m, ah, rxhand); @@ -296,7 +297,7 @@ atm_input(struct ifnet *ifp, struct atm_pseudohdr *ah, struct mbuf *m, struct atmllc *alc; if (m->m_len < sizeof(*alc) && - (m = m_pullup(m, sizeof(*alc))) == 0) + (m = m_pullup(m, sizeof(*alc))) == NULL) return; /* failed */ alc = mtod(m, struct atmllc *); if (bcmp(alc, ATMLLC_HDR, 6)) { |