[dpdk-dev] [PATCH] ethdev: report error on name truncation

Stephen Hemminger stephen at networkplumber.org
Mon Jan 7 16:53:32 CET 2019


On Mon, 7 Jan 2019 17:47:08 +0300
Andrew Rybchenko <arybchenko at solarflare.com> wrote:

> On 1/7/19 5:40 PM, Nithin Kumar Dabilpuram wrote:
> > Signed-off-by: Nithin Dabilpuram <ndabilpuram at marvell.com>
> > ---
> >   lib/librte_ethdev/rte_ethdev.c | 12 ++++++++++--
> >   1 file changed, 10 insertions(+), 2 deletions(-)
> >
> > diff --git a/lib/librte_ethdev/rte_ethdev.c b/lib/librte_ethdev/rte_ethdev.c
> > index 9d5107d..bd45445 100644
> > --- a/lib/librte_ethdev/rte_ethdev.c
> > +++ b/lib/librte_ethdev/rte_ethdev.c
> > @@ -3588,9 +3588,17 @@ rte_eth_dma_zone_reserve(const struct rte_eth_dev *dev, const char *ring_name,
> >   {
> >   	char z_name[RTE_MEMZONE_NAMESIZE];
> >   	const struct rte_memzone *mz;
> > +	int rc;
> >   
> > -	snprintf(z_name, sizeof(z_name), "eth_p%d_q%d_%s",
> > -		 dev->data->port_id, queue_id, ring_name);
> > +	rc = snprintf(z_name, sizeof(z_name), "%s_%s_%d_%d",
> > +		      dev->device->driver->name, ring_name,
> > +		      dev->data->port_id, queue_id);
> > +
> > +	if (rc >= RTE_MEMZONE_NAMESIZE) {
> > +		RTE_LOG(ERR, EAL, "%s(): truncated name\n", __func__);
> > +		rte_errno = ENAMETOOLONG;
> > +		return NULL;
> > +	}
> >   
> >   	mz = rte_memzone_lookup(z_name);
> >   	if (mz)  
> 
> It is good to report an error in the case of name truncation, but the patch
> does more. It changes format of the memzone name, adds the driver name
> in it (what is bad since testpmd has commands to find the memzone by name
> and read descriptors (hack, but sometimes very useful)).
> Also I'm not sure about function name in the log message. Other places
> do not have it.
> 

Maybe MEMZONE_NAMESIZE should be big enough that this should never happen?
The size is arbitrary anyway.


More information about the dev mailing list