[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