Fix if_(m)addr_rlock().
The use of a per-ifnet epoch context meant that these KPIs were not
reentrant. This was fixed in head in r340413, but the change cannot
be MFCed because it breaks the KBI by modifying struct thread. This
is a direct commit to stable/12 which uses a per-CPU mutex to fix
the problem without changing the KBI.
PR: 236846
Submitted by: hselasky
Reported and tested by: Viktor Dukhovni <ietf-dane@dukhovni.org>
Reviewed by: hselasky (previous version)
Differential Revision: https://reviews.freebsd.org/D19764