FreeBSD/src b79aa45 (r340413)sys/kern subr_epoch.c kern_thread.c, sys/net if.c if_var.h

For compatibility KPI functions like if_addr_rlock() that used to have
mutexes but now are converted to epoch(9) use thread-private epoch_tracker.
Embedding tracker into ifnet(9) or ifnet derived structures creates a non
reentrable function, that will fail miserably if called simultaneously from
two different contexts.
A thread private tracker will provide a single tracker that would allow to
call these functions safely. It doesn't allow nested call, but this is not
expected from compatibility KPIs.

Reviewed by:    markj
DeltaFile
+6-12sys/net/if.c
+14-0sys/kern/subr_epoch.c
+3-0sys/sys/epoch.h
+2-0sys/kern/kern_thread.c
+0-2sys/net/if_var.h
+2-0sys/sys/proc.h
+27-146 files

UnifiedSplitRaw