Author: jhb
Date: Thu Mar 28 21:00:54 2019
New Revision: 345659
URL: https://svnweb.freebsd.org/changeset/base/345659

Log:
  Use a dedicated malloc type for lagg(4)'s structures.
  
  Reviewed by:  gallatin
  MFC after:    1 month
  Sponsored by: Netflix
  Differential Revision:        https://reviews.freebsd.org/D19719

Modified:
  head/sys/net/if_lagg.c

Modified: head/sys/net/if_lagg.c
==============================================================================
--- head/sys/net/if_lagg.c      Thu Mar 28 20:46:45 2019        (r345658)
+++ head/sys/net/if_lagg.c      Thu Mar 28 21:00:54 2019        (r345659)
@@ -111,6 +111,7 @@ static void lagg_clone_destroy(struct ifnet *);
 VNET_DEFINE_STATIC(struct if_clone *, lagg_cloner);
 #define        V_lagg_cloner   VNET(lagg_cloner)
 static const char laggname[] = "lagg";
+static MALLOC_DEFINE(M_LAGG, laggname, "802.3AD Link Aggregation Interface");
 
 static void    lagg_capabilities(struct lagg_softc *);
 static int     lagg_port_create(struct lagg_softc *, struct ifnet *);
@@ -479,10 +480,10 @@ lagg_clone_create(struct if_clone *ifc, int unit, cadd
        struct ifnet *ifp;
        static const u_char eaddr[6];   /* 00:00:00:00:00:00 */
 
-       sc = malloc(sizeof(*sc), M_DEVBUF, M_WAITOK|M_ZERO);
+       sc = malloc(sizeof(*sc), M_LAGG, M_WAITOK|M_ZERO);
        ifp = sc->sc_ifp = if_alloc(IFT_ETHER);
        if (ifp == NULL) {
-               free(sc, M_DEVBUF);
+               free(sc, M_LAGG);
                return (ENOSPC);
        }
        LAGG_SX_INIT(sc);
@@ -570,7 +571,7 @@ lagg_clone_destroy(struct ifnet *ifp)
        LAGG_LIST_UNLOCK();
 
        LAGG_SX_DESTROY(sc);
-       free(sc, M_DEVBUF);
+       free(sc, M_LAGG);
 }
 
 static void
@@ -684,7 +685,7 @@ lagg_port_create(struct lagg_softc *sc, struct ifnet *
                ifr.ifr_mtu = oldmtu;
        }
 
-       lp = malloc(sizeof(struct lagg_port), M_DEVBUF, M_WAITOK|M_ZERO);
+       lp = malloc(sizeof(struct lagg_port), M_LAGG, M_WAITOK|M_ZERO);
        lp->lp_softc = sc;
 
        /* Check if port is a stacked lagg */
@@ -692,7 +693,7 @@ lagg_port_create(struct lagg_softc *sc, struct ifnet *
        SLIST_FOREACH(sc_ptr, &V_lagg_list, sc_entries) {
                if (ifp == sc_ptr->sc_ifp) {
                        LAGG_LIST_UNLOCK();
-                       free(lp, M_DEVBUF);
+                       free(lp, M_LAGG);
                        if (oldmtu != -1)
                                (*ifp->if_ioctl)(ifp, SIOCSIFMTU,
                                    (caddr_t)&ifr);
@@ -703,7 +704,7 @@ lagg_port_create(struct lagg_softc *sc, struct ifnet *
                        if (lagg_port_checkstacking(sc_ptr) >=
                            LAGG_MAX_STACKING) {
                                LAGG_LIST_UNLOCK();
-                               free(lp, M_DEVBUF);
+                               free(lp, M_LAGG);
                                if (oldmtu != -1)
                                        (*ifp->if_ioctl)(ifp, SIOCSIFMTU,
                                            (caddr_t)&ifr);
@@ -812,7 +813,7 @@ lagg_port_destroy_cb(epoch_context_t ec)
        ifp = lp->lp_ifp;
 
        if_rele(ifp);
-       free(lp, M_DEVBUF);
+       free(lp, M_LAGG);
 }
 
 static int
@@ -1600,7 +1601,7 @@ lagg_setmulti(struct lagg_port *lp)
        CK_STAILQ_FOREACH(ifma, &scifp->if_multiaddrs, ifma_link) {
                if (ifma->ifma_addr->sa_family != AF_LINK)
                        continue;
-               mc = malloc(sizeof(struct lagg_mc), M_DEVBUF, M_NOWAIT);
+               mc = malloc(sizeof(struct lagg_mc), M_LAGG, M_NOWAIT);
                if (mc == NULL) {
                        IF_ADDR_WUNLOCK(scifp);
                        return (ENOMEM);
@@ -1631,7 +1632,7 @@ lagg_clrmulti(struct lagg_port *lp)
                SLIST_REMOVE(&lp->lp_mc_head, mc, lagg_mc, mc_entries);
                if (mc->mc_ifma && lp->lp_detaching == 0)
                        if_delmulti_ifma(mc->mc_ifma);
-               free(mc, M_DEVBUF);
+               free(mc, M_LAGG);
        }
        return (0);
 }
@@ -2077,7 +2078,7 @@ lagg_lb_attach(struct lagg_softc *sc)
        struct lagg_lb *lb;
 
        LAGG_XLOCK_ASSERT(sc);
-       lb = malloc(sizeof(struct lagg_lb), M_DEVBUF, M_WAITOK | M_ZERO);
+       lb = malloc(sizeof(struct lagg_lb), M_LAGG, M_WAITOK | M_ZERO);
        lb->lb_key = m_ether_tcpip_hash_init();
        sc->sc_psc = lb;
 
@@ -2092,7 +2093,7 @@ lagg_lb_detach(struct lagg_softc *sc)
 
        lb = (struct lagg_lb *)sc->sc_psc;
        if (lb != NULL)
-               free(lb, M_DEVBUF);
+               free(lb, M_LAGG);
 }
 
 static int


_______________________________________________
svn-src-head@freebsd.org mailing list
https://lists.freebsd.org/mailman/listinfo/svn-src-head
To unsubscribe, send any mail to "svn-src-head-unsubscr...@freebsd.org"

Reply via email to