> > > Comments: > > > IPMP stress reveals a possible infinite loop in ipif_select_source() > > > ilm_walker_start() should also skip ILM_DELETED ILMs > > > 6789718 ip6.tun0 cannot be plumbed in a non-global-zone post-6745288 > > > in.ndpd nits > > > > Webrev is at: > > > > http://zhadum.east/ws/clearview/clearview-ipmpdev/webrev.misc.4/ > > ip_multi.c: I don't see how ilm_walker_start() skips ILM_DELETED ilms. > It looks like it still always returns ilw->ilw_walk_ill->ill_ilm, just > as it did before.
ilm_walker_step_helper() returns ilw->ilw_walk_ill->ill_ilm if passed a NULL second argument (which will happen when called indirectly via ilm_walker_start() -> ilm_walker_step()). If ilw->ilw_walk_ill->ill_ilm is marked ILM_DELETED, then it will call ilm_walker_step_helper() again to get the next ILM, and so forth until it either gets back NULL or an ILM that is not ILM_DELETED. It may be easier to see via cscope rather than the in webrev. -- meem
