mirror of
https://git.FreeBSD.org/src.git
synced 2025-01-11 14:10:34 +00:00
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
This commit is contained in:
parent
225eae1bb7
commit
841613dcdc
Notes:
svn2git
2020-12-20 02:59:44 +00:00
svn path=/head/; revision=345659
@ -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, caddr_t params)
|
||||
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 *ifp)
|
||||
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 *ifp)
|
||||
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 *ifp)
|
||||
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
|
||||
|
Loading…
Reference in New Issue
Block a user