> On 16/12/14 4:54 am, "Thomas Monjalon" <thomas.monjalon at 6wind.com> > wrote: > > >2014-12-12 13:48, Sujith Sankar: > >> This patch corrects the usage of the flag VFIO_PRESENT in enic driver. > > > >Please, could you explain why the flag VFIO_PRESENT was not well used? > > Without including eal_vfio.h, VFIO_PRESENT is not available in enic. > Hence VFIO specific code in enic was not getting compiled and some errors > were generated during run-time. > > > > >> This has uncovered a few warnings, and this patch corrects those too. > >[...] > >> --- a/lib/librte_pmd_enic/enic_main.c > >> +++ b/lib/librte_pmd_enic/enic_main.c > >> @@ -39,6 +39,7 @@ > >> #include <sys/mman.h> > >> #include <fcntl.h> > >> #include <libgen.h> > >> +#include <sys/ioctl.h> > >> > >> #include <rte_pci.h> > >> #include <rte_memzone.h> > >> @@ -46,6 +47,7 @@ > >> #include <rte_mbuf.h> > >> #include <rte_string_fns.h> > >> #include <rte_ethdev.h> > >> +#include <eal_vfio.h> > > > >This header was not designed to be included by PMDs. > >It will break compilation on BSD. > > Is there an alternative to make VFIO_PRESENT available in enic? Please > advise. > > Thanks, > -Sujith > > > > >> #include "enic_compat.h" > >> #include "enic.h" > >> @@ -561,6 +563,7 @@ enic_free_consistent(__rte_unused struct > >>rte_pci_device *hwdev, > >> /* Nothing to be done */ > >> } > >> > >> +#ifndef VFIO_PRESENT > >> static void > >> enic_intr_handler(__rte_unused struct rte_intr_handle *handle, > >> void *arg) > >> @@ -572,6 +575,7 @@ enic_intr_handler(__rte_unused struct > >>rte_intr_handle *handle, > >> > >> enic_log_q_error(enic); > >> } > >> +#endif > > > >-- > >Thomas
Hi Sujith Thomas is correct, VFIO code is designed to be EAL-only (mainly because it's Linuxapp-specific, and PMD's are intended to be cross-platform at least when it comes to compilation). Whatever it is that you're working around is better fixed in the EAL itself rather than in the PMD. Thanks, Anatoly