When a NGM_MKPEER message arrives and the type is unknown, the module of
the type will be loaded via kern_kldload(). When the load fails, the error
from kern_kldload() is not translated and is passed to userland. That is
somewhat misleading. Obviously the failing to load indicates that the type
is not available, and since we have already chosen ENXIO for that purpose,
we use same for consistency.
While here, treat EEXIST from kern_kldload() as success in case we are in
a race condition.
This change will also prevent an upcoming kernel-only error EUNSDEP used
by kernel linkers from being leaked to userland.
MFC after: 2 weeks