Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 03 Jan 2016 14:23:05 -0800
From:      John Baldwin <jhb@freebsd.org>
To:        Garrett Cooper <ngie@freebsd.org>
Cc:        src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org
Subject:   Re: svn commit: r293112 - head/sys/dev/ixl
Message-ID:  <1740114.0GzEsp8E6P@ralph.baldwin.cx>
In-Reply-To: <201601031809.u03I9lNJ091471@repo.freebsd.org>
References:  <201601031809.u03I9lNJ091471@repo.freebsd.org>

next in thread | previous in thread | raw e-mail | index | archive | help
On Sunday, January 03, 2016 06:09:47 PM Garrett Cooper wrote:
> Author: ngie
> Date: Sun Jan  3 18:09:46 2016
> New Revision: 293112
> URL: https://svnweb.freebsd.org/changeset/base/293112
> 
> Log:
>   Fix ixl(4) compilation with PCI_IOV pre-r266974
>   
>   stable/10 doesn't have the if_getdrvflags(9) KPI. Reference the field in the
>   structure directly if the __FreeBSD_version is < 1100022, so the driver can
>   be built with PCI_IOV support on stable/10, without backporting all of
>   r266974 (which requires additional changes due to projects/ifnet, etc)
>   
>   Differential Revision: https://reviews.freebsd.org/D4759
>   Reviewed by: erj, sbruno
>   Sponsored by: EMC / Isilon Storage Division
> 
> Modified:
>   head/sys/dev/ixl/if_ixl.c
> 
> Modified: head/sys/dev/ixl/if_ixl.c
> ==============================================================================
> --- head/sys/dev/ixl/if_ixl.c	Sun Jan  3 17:58:11 2016	(r293111)
> +++ head/sys/dev/ixl/if_ixl.c	Sun Jan  3 18:09:46 2016	(r293112)
> @@ -6606,7 +6606,11 @@ ixl_iov_uninit(device_t dev)
>  		pf->veb_seid = 0;
>  	}
>  
> +#if __FreeBSD_version > 1100022
>  	if ((if_getdrvflags(ifp) & IFF_DRV_RUNNING) == 0)
> +#else
> +	if ((ifp->if_drv_flags & IFF_DRV_RUNNING) == 0)
> +#endif
>  		ixl_disable_intr(vsi);

FWIW, it is probably simpler to do something like this in an ixl header instead:

#if __FreeBSD_version <= 1100022
#define if_getdrvflags(ifp)	(ifp)->if_drv_flags
#endif

In the past when the Intel drivers have used compat shims they have preferred this
method (defining compat macros for "new" APIs on old OS versions) instead of using
#ifdef's in the code itself.

-- 
John Baldwin



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