Regarding if_alloc()
vijay singh
vijjus at rocketmail.com
Fri Apr 18 02:02:04 UTC 2008
Hi all. How do we avoid a race in populating the ifindex_table? Id this is a TODO, as it seems from the code below, would it be acceptable if I wrote a patch and reused the ifnet_lock [IFNET_WLOCK, IFNET_WUNLOCK]?
if_alloc(u_char type)
{
struct ifnet *ifp;
ifp = malloc(sizeof(struct ifnet), M_IFNET, M_WAITOK|M_ZERO);
/*
* Try to find an empty slot below if_index. If we fail, take
* the next slot.
*
* XXX: should be locked!
*/
for (ifp->if_index = 1; ifp->if_index <= if_index; ifp->if_index++) {
if (ifnet_byindex(ifp->if_index) == NULL)
break;
}
____________________________________________________________________________________
Be a better friend, newshound, and
know-it-all with Yahoo! Mobile. Try it now. http://mobile.yahoo.com/;_ylt=Ahu06i62sR8HDtDypao8Wcj9tAcJ
More information about the freebsd-net
mailing list