On Mon, Apr 17, 2023 at 02:16:14AM +0300, Vitaliy Makkoveev wrote: > Also performs read-only access to netlock protected data.
rtable_getsource() needs kernel lock. But that problem does not get worse by this diff. OK bluhm@ > Index: sys/net/rtsock.c > =================================================================== > RCS file: /cvs/src/sys/net/rtsock.c,v > retrieving revision 1.359 > diff -u -p -r1.359 rtsock.c > --- sys/net/rtsock.c 22 Jan 2023 12:05:44 -0000 1.359 > +++ sys/net/rtsock.c 16 Apr 2023 23:12:25 -0000 > @@ -2159,7 +2159,7 @@ sysctl_rtable(int *name, u_int namelen, > switch (w.w_op) { > case NET_RT_DUMP: > case NET_RT_FLAGS: > - NET_LOCK(); > + NET_LOCK_SHARED(); > for (i = 1; i <= AF_MAX; i++) { > if (af != 0 && af != i) > continue; > @@ -2171,7 +2171,7 @@ sysctl_rtable(int *name, u_int namelen, > if (error) > break; > } > - NET_UNLOCK(); > + NET_UNLOCK_SHARED(); > break; > > case NET_RT_IFLIST: