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
This commit is contained in:
ume 2001-07-15 14:24:00 +00:00
parent f07b174fb3
commit e5aac591c6

View File

@ -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));