On Wed, Jul 13, 2016 at 1:37 AM, J. Hannken-Illjes <hann...@eis.cs.tu-bs.de> wrote: > >> On 06 Jul 2016, at 10:42, Ryota Ozaki <ozak...@netbsd.org> wrote: >> >> Module Name: src >> Committed By: ozaki-r >> Date: Wed Jul 6 08:42:34 UTC 2016 >> >> Modified Files: >> src/sys/net: if_stf.c >> src/sys/netinet: in.c in_gif.c in_pcb.c in_var.h ip_carp.c ip_icmp.c >> ip_input.c >> src/sys/netipsec: key.c >> >> Log Message: >> Switch the IPv4 address list to pslist(9) >> >> Note that we leave the old list just in case; it seems there are some >> kvm(3) users accessing the list. We can remove it later if we confirmed >> nobody does actually. >> >> >> To generate a diff of this commit: >> cvs rdiff -u -r1.93 -r1.94 src/sys/net/if_stf.c >> cvs rdiff -u -r1.170 -r1.171 src/sys/netinet/in.c > > @@ -639,8 +644,10 @@ in_control(struct socket *so, u_long cmd > if (newifaddr) { > TAILQ_INSERT_TAIL(&in_ifaddrhead, ia, ia_list); > ifaref(&ia->ia_ifa); > ifa_insert(ifp, &ia->ia_ifa); > + TAILQ_INSERT_TAIL(&in_ifaddrhead, ia, ia_list); > + IN_ADDRLIST_WRITER_INSERT_TAIL(ia); > LIST_INSERT_HEAD(&IN_IFADDR_HASH(ia->ia_addr.sin_addr.s_addr), > ia, ia_hash); > IN_ADDRHASH_WRITER_INSERT_HEAD(ia); > } else if (need_reinsert) { > > > This one looks wrong -- we enqueue "ia" twice.
That's correct. We have two lists: one is added for psz/psref and the other is the original list remained for kvm(3) users. ozaki-r