summaryrefslogtreecommitdiffstats
path: root/sys/net/if_iso88025subr.c
diff options
context:
space:
mode:
authorrwatson <rwatson@FreeBSD.org>2005-08-02 17:52:52 +0000
committerrwatson <rwatson@FreeBSD.org>2005-08-02 17:52:52 +0000
commitf859ef367bb9da51d548ce2541ded64582b4bfd7 (patch)
treed84acad36832edb2c3e80231f2c82d8289e533ff /sys/net/if_iso88025subr.c
parenta3335c93b9a924f9255eabefe20044ffee3ea74d (diff)
downloadFreeBSD-src-f859ef367bb9da51d548ce2541ded64582b4bfd7.zip
FreeBSD-src-f859ef367bb9da51d548ce2541ded64582b4bfd7.tar.gz
When allocating link layer ifnet address list entries in
ifp->if_resolvemulti(), do so with M_NOWAIT rather than M_WAITOK, so that a mutex can be held over the call. In the FDDI code, add a missing M_ZERO. Consumers are already aware that if_resolvemulti() can fail. MFC after: 1 week
Diffstat (limited to 'sys/net/if_iso88025subr.c')
-rw-r--r--sys/net/if_iso88025subr.c8
1 files changed, 6 insertions, 2 deletions
diff --git a/sys/net/if_iso88025subr.c b/sys/net/if_iso88025subr.c
index d497143..fd04bc1 100644
--- a/sys/net/if_iso88025subr.c
+++ b/sys/net/if_iso88025subr.c
@@ -720,7 +720,9 @@ iso88025_resolvemulti (ifp, llsa, sa)
return (EADDRNOTAVAIL);
}
MALLOC(sdl, struct sockaddr_dl *, sizeof *sdl, M_IFMADDR,
- M_WAITOK|M_ZERO);
+ M_NOWAIT|M_ZERO);
+ if (sdl == NULL)
+ return (ENOMEM);
sdl->sdl_len = sizeof *sdl;
sdl->sdl_family = AF_LINK;
sdl->sdl_index = ifp->if_index;
@@ -748,7 +750,9 @@ iso88025_resolvemulti (ifp, llsa, sa)
return (EADDRNOTAVAIL);
}
MALLOC(sdl, struct sockaddr_dl *, sizeof *sdl, M_IFMADDR,
- M_WAITOK|M_ZERO);
+ M_NOWAIT|M_ZERO);
+ if (sdl == NULL)
+ return (ENOMEM);
sdl->sdl_len = sizeof *sdl;
sdl->sdl_family = AF_LINK;
sdl->sdl_index = ifp->if_index;
OpenPOWER on IntegriCloud