On Wed, Jul 13, 2016 at 11:32 AM, Ryota Ozaki <ozak...@netbsd.org> wrote: > 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.
Oops. You're right. An extra TAILQ_INSERT_TAIL is wrongly added... I'll fix it. ozaki-r