Push kernel lock down to umb_rtrequest().
authormvs <mvs@openbsd.org>
Thu, 1 Apr 2021 08:39:52 +0000 (08:39 +0000)
committermvs <mvs@openbsd.org>
Thu, 1 Apr 2021 08:39:52 +0000 (08:39 +0000)
commit99ae0d529b6d032ce4069677ab2067bf7b453da4
treeeb855c3e2ff04cc65ae351e28a434b673d4d9c6f
parent50aad25e032f942f262cef32046958988eb7ff95
Push kernel lock down to umb_rtrequest().

We are going to unlock PF_ROUTE sockets. This means `if_rtrequest'
handler will be performed without kernel lock.

umb_rtrequest() calls umb_send_inet_proposal() which touches kernel lock
protected `ipv{4,6}dns' array. Also umb_rtrequest() is the only handler
which requires kernel lock to be held. So push the lock down to
umb_rtrequest() instead of grab it around `if_rtrequest' call.

This hunk was commited separately for decreases PF_ROUTE sockets
unlocking diff.

ok gerhard@ deraadt@
sys/dev/usb/if_umb.c