DPDK patches and discussions
 help / color / mirror / Atom feed
From: Adrien Mazarguil <adrien.mazarguil@6wind.com>
To: Shachar Beiser <shacharbe@mellanox.com>
Cc: dev@dpdk.org, Nelio Laranjeiro <nelio.laranjeiro@6wind.com>,
	stable@dpdk.org
Subject: Re: [dpdk-dev] [PATCH] net/mlx5: fix verification of device context
Date: Wed, 26 Jul 2017 11:06:13 +0200	[thread overview]
Message-ID: <20170726090613.GT19852@6wind.com> (raw)
In-Reply-To: <5ec0604196fb087a42fa75e6ddc2a04aab293593.1501047767.git.shacharbe@mellanox.com>

Hi Shachar,

On Wed, Jul 26, 2017 at 05:43:24AM +0000, Shachar Beiser wrote:
> Get interface name function lacks verification of device context.
> It might lead to segmentation fault when trying to query the name
> after the device is closed.fixing it by adding the missing verification
> 

Thanks, however if by "close" you mean it may occur when applications use
ethdev callbacks after a call to rte_eth_dev_close(), I do not think PMDs
have to protect themselves against bad application behavior, otherwise there
is no end to such fixes.

The reverse of rte_eth_dev_close() is not rte_eth_dev_configure() nor any
other ethdev callback (see documentation), but a bus probe operation.

Perhaps I've missed something, so in case a crash occurs *while* calling
rte_eth_dev_close() I guess this patch is fine, but then please describe
the reason.

> Fixes: cd89f22a1e9770 ("net/mlx5: remove unused interface name query")

This commit doesn't look like the root cause of that issue?

> Cc: stable@dpdk.org
> 
> Signed-off-by: Shachar Beiser <shacharbe@mellanox.com>
> ---
>  drivers/net/mlx5/mlx5_ethdev.c | 4 ++++
>  1 file changed, 4 insertions(+)
> 
> diff --git a/drivers/net/mlx5/mlx5_ethdev.c b/drivers/net/mlx5/mlx5_ethdev.c
> index b70b7b9..6e67461 100644
> --- a/drivers/net/mlx5/mlx5_ethdev.c
> +++ b/drivers/net/mlx5/mlx5_ethdev.c
> @@ -173,6 +173,10 @@ struct priv *
>  	char match[IF_NAMESIZE] = "";
>  
>  	{
> +		if (priv->ctx == NULL) {
> +			DEBUG("The device is closed, cannot query interface name ");
> +			return -1;
> +		}

MKSTR() is at the beginning of this block because it defines a new variable
(path). For coding style consistency you should not put any code before
variable declarations, or at least insert an empty line between
them. Otherwise you could move this check to the parent block.

>  		MKSTR(path, "%s/device/net", priv->ctx->device->ibdev_path);
>  
>  		dir = opendir(path);
> -- 
> 1.8.3.1
> 

I think this patch is not necessary unless proved otherwise, have you
actually observed a crash addressed by it?

-- 
Adrien Mazarguil
6WIND

  reply	other threads:[~2017-07-26  9:06 UTC|newest]

Thread overview: 23+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-07-26  5:43 Shachar Beiser
2017-07-26  9:06 ` Adrien Mazarguil [this message]
2017-07-26  9:21   ` Shachar Beiser
2017-07-26 12:55     ` Gaëtan Rivet
2017-07-26 13:30 ` [dpdk-dev] [PATCH 0/6] fix ethdev device detach Gaetan Rivet
2017-07-26 13:30   ` [dpdk-dev] [PATCH 1/6] ethdev: fix device state on detach Gaetan Rivet
2017-07-26 13:30   ` [dpdk-dev] [PATCH 3/6] net/mlx4: advertize the detach capability Gaetan Rivet
2017-07-26 13:30   ` [dpdk-dev] [PATCH 4/6] net/mlx5: " Gaetan Rivet
2017-07-26 13:30   ` [dpdk-dev] [PATCH 5/6] app/testpmd: let the user know device detach failed Gaetan Rivet
2017-07-26 13:30   ` [dpdk-dev] [PATCH 6/6] doc: announce ethdev API change for detach flag Gaetan Rivet
2017-07-26 13:35   ` [dpdk-dev] [PATCH v2 0/6] fix ethdev device detach Gaetan Rivet
2017-07-26 13:35     ` [dpdk-dev] [PATCH v2 1/6] ethdev: fix device state on detach Gaetan Rivet
2017-07-26 13:35     ` [dpdk-dev] [PATCH v2 2/6] ethdev: properly check detach capability Gaetan Rivet
2017-07-26 13:35     ` [dpdk-dev] [PATCH v2 3/6] net/mlx4: advertize the " Gaetan Rivet
2017-07-26 13:35     ` [dpdk-dev] [PATCH v2 4/6] net/mlx5: " Gaetan Rivet
2017-07-26 13:35     ` [dpdk-dev] [PATCH v2 5/6] app/testpmd: let the user know device detach failed Gaetan Rivet
2017-07-26 13:35     ` [dpdk-dev] [PATCH v2 6/6] doc: announce ethdev API change for detach flag Gaetan Rivet
2017-07-28 15:54       ` Mcnamara, John
2017-07-31  9:40       ` [dpdk-dev] [PATCH v3] " Gaetan Rivet
2017-08-08  8:37         ` Thomas Monjalon
2017-07-30  7:33     ` [dpdk-dev] [PATCH v2 0/6] fix ethdev device detach Shachar Beiser
2017-07-31  8:57     ` Adrien Mazarguil
2017-07-31  9:31       ` Thomas Monjalon

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=20170726090613.GT19852@6wind.com \
    --to=adrien.mazarguil@6wind.com \
    --cc=dev@dpdk.org \
    --cc=nelio.laranjeiro@6wind.com \
    --cc=shacharbe@mellanox.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).