Date: Mon, 24 Aug 2009 12:17:58 +0200 From: Marko Zec <zec@icir.org> To: src-committers@freebsd.org Cc: svn-src-head@freebsd.org, svn-src-all@freebsd.org Subject: Re: svn commit: r196504 - head/sys/net Message-ID: <200908241217.58632.zec@icir.org> In-Reply-To: <200908241014.n7OAE96O089368@svn.freebsd.org> References: <200908241014.n7OAE96O089368@svn.freebsd.org>
next in thread | previous in thread | raw e-mail | index | archive | help
On Monday 24 August 2009 12:14:09 Marko Zec wrote: > Author: zec > Date: Mon Aug 24 10:14:09 2009 > New Revision: 196504 > URL: http://svn.freebsd.org/changeset/base/196504 > > Log: > When moving ifnets from one vnet to another, and the ifnet > has ifaddresses of AF_LINK type which thus have an embedded > if_index "backpointer", we must update that if_index backpointer > to reflect the new if_index that our ifnet just got assigned. > > This change affects only options VIMAGE builds. > > Submitted by: bz > Reviewed by: bz > Approved by: re (rwatson), julian (mentor) Missing: MFC after: 3 days > Modified: > head/sys/net/if.c > > Modified: head/sys/net/if.c > =========================================================================== >=== --- head/sys/net/if.c Mon Aug 24 10:09:30 2009 (r196503) > +++ head/sys/net/if.c Mon Aug 24 10:14:09 2009 (r196504) > @@ -589,6 +589,21 @@ if_attach_internal(struct ifnet *ifp, in > /* Reliably crash if used uninitialized. */ > ifp->if_broadcastaddr = NULL; > } > +#ifdef VIMAGE > + else { > + /* > + * Update the interface index in the link layer address > + * of the interface. > + */ > + for (ifa = ifp->if_addr; ifa != NULL; > + ifa = TAILQ_NEXT(ifa, ifa_link)) { > + if (ifa->ifa_addr->sa_family == AF_LINK) { > + sdl = (struct sockaddr_dl *)ifa->ifa_addr; > + sdl->sdl_index = ifp->if_index; > + } > + } > + } > +#endif > > IFNET_WLOCK(); > TAILQ_INSERT_TAIL(&V_ifnet, ifp, if_link);
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200908241217.58632.zec>