View | Details | Raw Unified | Return to bug 257965 | Differences between
and this patch

Collapse All | Expand All

(-)b/sys/netinet/in_fib_dxr.c (-1 / +7 lines)
Lines 915-921 dxr_build(struct dxr *dxr) Link Here
915
915
916
	for (i = da->updates_low >> dxr_x; i <= da->updates_high >> dxr_x;
916
	for (i = da->updates_low >> dxr_x; i <= da->updates_high >> dxr_x;
917
	    i++) {
917
	    i++) {
918
		trie_unref(da, i);
918
		if (!trie_rebuild) {
919
			for (int j = 0, m = 0; j < (1 << dxr_x); j += 32)
920
				m |= da->updates_mask[((i << dxr_x) + j) >> 5];
921
			if (m == 0)
922
				continue;
923
			trie_unref(da, i);
924
		}
919
		ti = trie_ref(da, i);
925
		ti = trie_ref(da, i);
920
		if (ti < 0)
926
		if (ti < 0)
921
			return;
927
			return;

Return to bug 257965