From e5aac591c67fbbf63002ece46525a1d7c5b1c90f Mon Sep 17 00:00:00 2001 From: ume Date: Sun, 15 Jul 2001 14:24:00 +0000 Subject: do not M_WAITOK in in6_update_ifa(), since this function can be called under splnet(). (some comment was added by KAME) PR: 28927 MFC after: 1 week --- sys/netinet6/in6.c | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) (limited to 'sys/netinet6') diff --git a/sys/netinet6/in6.c b/sys/netinet6/in6.c index b17eaa1..9a5b404 100644 --- a/sys/netinet6/in6.c +++ b/sys/netinet6/in6.c @@ -894,8 +894,13 @@ in6_update_ifa(ifp, ifra, ia) */ if (ia == NULL) { hostIsNew = 1; + /* + * When in6_update_ifa() is called in a process of a received + * RA, it is called under splnet(). So, we should call malloc + * with M_NOWAIT. + */ ia = (struct in6_ifaddr *) - malloc(sizeof(*ia), M_IFADDR, M_WAITOK); + malloc(sizeof(*ia), M_IFADDR, M_NOWAIT); if (ia == NULL) return (ENOBUFS); bzero((caddr_t)ia, sizeof(*ia)); -- cgit v1.1