mcast: Use M_INTWAIT for multicast addresses allocation
authorSepherosa Ziehau <sephe@dragonflybsd.org>
Tue, 28 Jul 2015 15:29:04 +0000 (23:29 +0800)
committerSepherosa Ziehau <sephe@dragonflybsd.org>
Wed, 29 Jul 2015 03:18:25 +0000 (11:18 +0800)
sys/net/if.c
sys/netinet/in.c
sys/netinet6/in6.c

index 0d1f20a..f8e7655 100644 (file)
@@ -2439,8 +2439,8 @@ if_addmulti_serialized(struct ifnet *ifp, struct sockaddr *sa,
                llsa = NULL;
        }
 
-       ifma = kmalloc(sizeof *ifma, M_IFMADDR, M_WAITOK);
-       dupsa = kmalloc(sa->sa_len, M_IFMADDR, M_WAITOK);
+       ifma = kmalloc(sizeof *ifma, M_IFMADDR, M_INTWAIT);
+       dupsa = kmalloc(sa->sa_len, M_IFMADDR, M_INTWAIT);
        bcopy(sa, dupsa, sa->sa_len);
 
        ifma->ifma_addr = dupsa;
@@ -2462,8 +2462,8 @@ if_addmulti_serialized(struct ifnet *ifp, struct sockaddr *sa,
                if (ifma) {
                        ifma->ifma_refcount++;
                } else {
-                       ifma = kmalloc(sizeof *ifma, M_IFMADDR, M_WAITOK);
-                       dupsa = kmalloc(llsa->sa_len, M_IFMADDR, M_WAITOK);
+                       ifma = kmalloc(sizeof *ifma, M_IFMADDR, M_INTWAIT);
+                       dupsa = kmalloc(llsa->sa_len, M_IFMADDR, M_INTWAIT);
                        bcopy(llsa, dupsa, llsa->sa_len);
                        ifma->ifma_addr = dupsa;
                        ifma->ifma_ifp = ifp;
index f9cb045..51ea05d 100644 (file)
@@ -1330,7 +1330,7 @@ in_addmulti(struct in_addr *ap, struct ifnet *ifp)
        if (ifma->ifma_protospec != NULL)
                return ifma->ifma_protospec;
 
-       inm = kmalloc(sizeof *inm, M_IPMADDR, M_WAITOK | M_ZERO);
+       inm = kmalloc(sizeof *inm, M_IPMADDR, M_INTWAIT | M_ZERO);
        inm->inm_addr = *ap;
        inm->inm_ifp = ifp;
        inm->inm_ifma = ifma;
index 600f12f..e772db5 100644 (file)
@@ -1746,7 +1746,7 @@ in6_addmulti(struct in6_addr *maddr6, struct ifnet *ifp, int *errorp)
                return ifma->ifma_protospec;
        }
 
-       in6m = kmalloc(sizeof(*in6m), M_IPMADDR, M_WAITOK | M_ZERO);
+       in6m = kmalloc(sizeof(*in6m), M_IPMADDR, M_INTWAIT | M_ZERO);
        in6m->in6m_addr = *maddr6;
        in6m->in6m_ifp = ifp;
        in6m->in6m_ifma = ifma;