On Tue, Feb 9, 2016 at 2:34 PM, David Marchand <david.marchand at 6wind.com> wrote: > On Mon, Feb 8, 2016 at 3:13 PM, Burakov, Anatoly > <anatoly.burakov at intel.com> wrote: >>> Include vfio map/rd/wr support for pci ioport. >>> >>> Signed-off-by: Santosh Shukla <sshukla at mvista.com> >>> --- >>> v7->v8: >>> - Remove rte_pci_ioport malloc and rte_free()/unmap() func from v7. >>> - removed umap from git header. >>> >>> lib/librte_eal/linuxapp/eal/eal_pci_vfio.c | 36 ++++++++++++++++++------- >>> --- >>> 1 file changed, 24 insertions(+), 12 deletions(-) >>> >>> diff --git a/lib/librte_eal/linuxapp/eal/eal_pci_vfio.c >>> b/lib/librte_eal/linuxapp/eal/eal_pci_vfio.c >>> index 4832313..9571ed8 100644 >>> --- a/lib/librte_eal/linuxapp/eal/eal_pci_vfio.c >>> +++ b/lib/librte_eal/linuxapp/eal/eal_pci_vfio.c >>> @@ -74,6 +74,7 @@ EAL_REGISTER_TAILQ(rte_vfio_tailq) >>> #define VFIO_GROUP_FMT "/dev/vfio/%u" >>> #define VFIO_NOIOMMU_GROUP_FMT "/dev/vfio/noiommu-%u" >>> #define VFIO_GET_REGION_ADDR(x) ((uint64_t) x << 40ULL) >>> +#define VFIO_GET_REGION_IDX(x) (x >> 40) >>> >>> /* per-process VFIO config */ >>> static struct vfio_config vfio_cfg; >>> @@ -999,30 +1000,41 @@ int >>> pci_vfio_ioport_map(struct rte_pci_device *dev, int bar, >>> struct rte_pci_ioport *p) >>> { >>> - RTE_SET_USED(dev); >>> - RTE_SET_USED(bar); >>> - RTE_SET_USED(p); >>> - return -1; >>> + if (bar < VFIO_PCI_BAR0_REGION_INDEX || >>> + bar > VFIO_PCI_BAR5_REGION_INDEX) { >>> + RTE_LOG(ERR, EAL, "invalid bar (%d)!\n", bar); >>> + return -1; >>> + } >>> + >>> + p->dev = dev; >>> + p->offset = VFIO_GET_REGION_ADDR(bar); >>> + return 0; >>> } >>> > > I still think we don't need this p->dev = dev. > But that's not important. > > >> Acked-by: Anatoly Burakov <anatoly.burakov at intel.com> > > Acked-by: David Marchand <david.marchand at 6wind.com> >
Thomas, Can you pl. merge this patch? > > -- > David Marchand