Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 4 Jun 2012 12:16:46 -0400
From:      John Baldwin <jhb@freebsd.org>
To:        Matthias Apitz <guru@unixarea.de>
Cc:        swills@freebsd.org, freebsd-current@freebsd.org
Subject:   Re: 10-CURRENT r235646 && open-vm-tools-8.6.0-425873
Message-ID:  <201206041216.46642.jhb@freebsd.org>
In-Reply-To: <20120603085402.GA6129@tinyCurrent>
References:  <20120526142229.GA3893@tinyCurrent> <201205311134.55258.jhb@freebsd.org> <20120603085402.GA6129@tinyCurrent>

next in thread | previous in thread | raw e-mail | index | archive | help
On Sunday, June 03, 2012 4:54:03 am Matthias Apitz wrote:
> El d=EDa Thursday, May 31, 2012 a las 11:34:55AM -0400, John Baldwin escr=
ibi=F3:
>=20
> > On Saturday, May 26, 2012 10:22:29 am Matthias Apitz wrote:
> > >=20
> > > Hi,
> > >=20
> > > The port ports/emulators/open-vm-tools does not compile in 10-CURRENT:
> > >=20
> > > # make install clean
> > > ...
> > > ...
> > > if_vxn.c:719: warning: implicit declaration of function 'IF_ADDR_LOCK'
> > > if_vxn.c:719: warning: nested extern declaration of 'IF_ADDR_LOCK'
> > > [-Wnested-ext erns]
> > > if_vxn.c:746: warning: implicit declaration of function 'IF_ADDR_UNLO=
CK'
> > > if_vxn.c:746: warning: nested extern declaration of 'IF_ADDR_UNLOCK'
> > > [-Wnested-e xterns]
> > > *** [if_vxn.o] Error code 1
> > >=20
> > > Let me know if you need more information.
> > > Thanks
> >=20
> > It should be using if_mcast_rlock() and if_mcast_runlock() instead of=20
using=20
> > those macros directly.  This works all the way back to 8.0.
>=20
> Hi,
>=20
> Is there a patch or some example how to replace
> IF_ADDR_LOCK/IF_ADDR_UNLOCK by if_mcast_rlock() and if_mcast_runlock()?
>=20
> The code in the above source looks like this:
>=20
> modules/freebsd/vmxnet/net_compat.h:
> ...
> #if __FreeBSD_version < 505000
> #   define VXN_IF_ADDR_LOCK(_ifp)
> #   define VXN_IF_ADDR_UNLOCK(_ifp)
> #else
> #   define VXN_IF_ADDR_LOCK(_ifp)       IF_ADDR_LOCK((_ifp))
> #   define VXN_IF_ADDR_UNLOCK(_ifp)     IF_ADDR_UNLOCK((_ifp))
> #endif

I think you can update this chunk to do:

#if __FreeBSD_version < 505000
=2E.. /* existing empty macros */
#elif __FreeBSD_version < 800000
#  define VXN_IF_ADDR_LOCK(_ifp)           IF_ADDR_LOCK((_ifp))
#  define VXN_IF_ADDR_UNLOCK(_ifp)         IF_ADDR_UNLOCK((_ifp))
#else
#  define VXN_IF_ADDR_LOCK(_ifp)           if_mcast_rlock((_ifp))
#  define VXN_IF_ADDR_UNLOCK(_ifp)         if_mcast_runlock((_ifp))
#endif

Does that help?

=2D-=20
John Baldwin



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201206041216.46642.jhb>