All of lore.kernel.org
 help / color / mirror / Atom feed
From: Jerin Jacob <jerin.jacob@caviumnetworks.com>
To: Nikhil Rao <nikhil.rao@intel.com>
Cc: "dev@dpdk.org" <dev@dpdk.org>, "stable@dpdk.org" <stable@dpdk.org>
Subject: Re: [PATCH] eventdev: fix eth Tx adapter queue count checks
Date: Sat, 1 Dec 2018 14:39:16 +0000	[thread overview]
Message-ID: <20181201143906.GA26004@jerin> (raw)
In-Reply-To: <1543489908-60688-1-git-send-email-nikhil.rao@intel.com>

-----Original Message-----
> Date: Thu, 29 Nov 2018 16:41:48 +0530
> From: Nikhil Rao <nikhil.rao@intel.com>
> To: jerin.jacob@caviumnetworks.com
> CC: dev@dpdk.org, Nikhil Rao <nikhil.rao@intel.com>, stable@dpdk.org
> Subject: [PATCH] eventdev: fix eth Tx adapter queue count checks
> X-Mailer: git-send-email 1.8.3.1
> 
> 
> rte_event_eth_tx_adapter_queue_add() - add a check
> that returns an error if the ethdev the zero Tx queues
> configured.
> 
> rte_event_eth_tx_adapter_queue_del() - remove the
> checks for ethdev queue count, instead check for
> queues added to the adapter which maybe different
> from the current ethdev queue count.
> 
> Fixes: a3bbf2e09756 ("eventdev: add eth Tx adapter implementation")
> Cc: stable@dpdk.org
> Signed-off-by: Nikhil Rao <nikhil.rao@intel.com>
> ---
>  lib/librte_eventdev/rte_event_eth_tx_adapter.c | 53 +++++++++++++++++---------
>  1 file changed, 36 insertions(+), 17 deletions(-)
> 
> diff --git a/lib/librte_eventdev/rte_event_eth_tx_adapter.c b/lib/librte_eventdev/rte_event_eth_tx_adapter.c
> index ccf8a75..8431656 100644
> --- a/lib/librte_eventdev/rte_event_eth_tx_adapter.c
> +++ b/lib/librte_eventdev/rte_event_eth_tx_adapter.c
> @@ -59,6 +59,19 @@
>                 return -EINVAL; \
>  } while (0)
> 
> +#define TXA_CHECK_TXQ(dev, queue) \
> +do {\
> +       if ((dev)->data->nb_tx_queues == 0) { \
> +               RTE_EDEV_LOG_ERR("No tx queues configured"); \
> +               return -EINVAL; \
> +       } \
> +       if (queue != -1 && (uint16_t)queue >= (dev)->data->nb_tx_queues) { \

The queue should be bracket i.e ((queue) != 1) to avoid any side effect

> +               RTE_EDEV_LOG_ERR("Invalid tx queue_id %" PRIu16, \
> +                               (uint16_t)queue); \
> +               return -EINVAL; \
> +       } \
> +} while (0)
> +
>         txa = txa_service_id_to_data(id);
> -       port_id = dev->data->port_id;
> 
>         tqi = txa_service_queue(txa, port_id, tx_queue_id);
>         if (tqi == NULL || !tqi->added)
> @@ -999,11 +1027,7 @@ static int txa_service_queue_del(uint8_t id,
>         TXA_CHECK_OR_ERR_RET(id);
> 
>         eth_dev = &rte_eth_devices[eth_dev_id];
> -       if (queue != -1 && (uint16_t)queue >= eth_dev->data->nb_tx_queues) {
> -               RTE_EDEV_LOG_ERR("Invalid tx queue_id %" PRIu16,
> -                               (uint16_t)queue);
> -               return -EINVAL;
> -       }
> +       TXA_CHECK_TXQ(eth_dev, queue);
> 
>         caps = 0;
>         if (txa_dev_caps_get(id))
> @@ -1034,11 +1058,6 @@ static int txa_service_queue_del(uint8_t id,
>         TXA_CHECK_OR_ERR_RET(id);
> 
>         eth_dev = &rte_eth_devices[eth_dev_id];
> -       if (queue != -1 && (uint16_t)queue >= eth_dev->data->nb_tx_queues) {
> -               RTE_EDEV_LOG_ERR("Invalid tx queue_id %" PRIu16,
> -                               (uint16_t)queue);
> -               return -EINVAL;
> -       }

Shouldn't we need TXA_CHECK_TXQ here? If we need only one place, Do we need
macro?


> 
>         caps = 0;
> 
> --
> 1.8.3.1
> 

  reply	other threads:[~2018-12-01 14:39 UTC|newest]

Thread overview: 7+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-11-29 11:11 [PATCH] eventdev: fix eth Tx adapter queue count checks Nikhil Rao
2018-12-01 14:39 ` Jerin Jacob [this message]
2018-12-03  7:37   ` Rao, Nikhil
2018-12-13  8:23 ` [PATCH v2] " Nikhil Rao
2018-12-16 23:11   ` [EXT] " Jerin Jacob Kollanukkaran
2018-12-17  4:39 ` [PATCH v3] " Nikhil Rao
2018-12-17 21:14   ` Jerin Jacob Kollanukkaran

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20181201143906.GA26004@jerin \
    --to=jerin.jacob@caviumnetworks.com \
    --cc=dev@dpdk.org \
    --cc=nikhil.rao@intel.com \
    --cc=stable@dpdk.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.