2016-05-30 10:45, Olivier Matz: > On 05/24/2016 07:15 AM, Yuanhan Liu wrote: > > On Mon, May 23, 2016 at 03:40:58PM +0200, Olivier Matz wrote: > >> For reference, here is the report of the ABI checker for EAL: > >> > >> [?] struct rte_pci_ioport (2) > >> > >> 1 Field len has been added to this type. > >> 1) This field will not be initialized by old clients. > >> 2) Size of the inclusive type has been changed. > >> NOTE: this field should be accessed only from the new library > >> functions, otherwise it may result in crash or incorrect behavior > >> of applications. > >> 2 Size of this type has been changed from 16 bytes to 24 bytes. > >> The fields or parameters of such data type may be incorrectly > >> initialized or accessed by old client applications. > >> > >> [?] affected symbols (4) > >> rte_eal_pci_ioport_map ( struct rte_pci_device* dev, int bar, > >> struct rte_pci_ioport* p ) @@ DPDK_16.04 > >> 3rd parameter 'p' (pointer) has base type 'struct rte_pci_ioport'. > >> rte_eal_pci_ioport_read ( struct rte_pci_ioport* p, void* data, > >> size_t len, off_t offset ) @@ DPDK_16.04 > >> 1st parameter 'p' (pointer) has base type 'struct rte_pci_ioport'. > >> rte_eal_pci_ioport_unmap ( struct rte_pci_ioport* p ) @@ DPDK_16.04 > >> 1st parameter 'p' (pointer) has base type 'struct rte_pci_ioport'. > >> rte_eal_pci_ioport_write ( struct rte_pci_ioport* p, void const* data, > >> size_t len, off_t offset ) @@ DPDK_16.04 > >> 1st parameter 'p' (pointer) has base type 'struct rte_pci_ioport'. > >> > >> > >> My understanding of the comment for this structure is that it's > >> internal to EAL: > > > > I'm not quite sure that is enough. Cc'ed Panu, the guru on ABI stuff, > > hopefully he could shed some light on it. > > > >> /** > >> * A structure used to access io resources for a pci device. > >> * rte_pci_ioport is arch, os, driver specific, and should not be used > >> outside > >> * of pci ioport api. > >> */ > >> struct rte_pci_ioport { > >> ... > >> } > >> > >> So I'd say it's ok to have it integrated for 16.07. > > > > I'll let Thomas to decide it :) > > Panu or Thomas, do you have any comment on this?
The user of this struct is virtio. The ABI policy does not apply to drivers: - A means Application - external drivers must be rebuilt for each new release Thus no problem here.