From: "Xia, Chenbo" <chenbo.xia@intel.com>
To: "Yigit, Ferruh" <ferruh.yigit@intel.com>,
Thomas Monjalon <thomas@monjalon.net>,
Andrew Rybchenko <andrew.rybchenko@oktetlabs.ru>,
Stephen Hemminger <stephen@networkplumber.org>,
Matan Azrad <matan@mellanox.com>
Cc: "Yigit, Ferruh" <ferruh.yigit@intel.com>,
"dev@dpdk.org" <dev@dpdk.org>,
"stable@dpdk.org" <stable@dpdk.org>,
Matan Azrad <matan@nvidia.com>
Subject: Re: [dpdk-dev] [dpdk-stable] [PATCH] ethdev: fix crash on owner delete
Date: Fri, 5 Nov 2021 03:03:52 +0000 [thread overview]
Message-ID: <SN6PR11MB350411A3AAE8079F23CCDF0E9C8E9@SN6PR11MB3504.namprd11.prod.outlook.com> (raw)
In-Reply-To: <20211104110422.2920154-1-ferruh.yigit@intel.com>
> -----Original Message-----
> From: stable <stable-bounces@dpdk.org> On Behalf Of Ferruh Yigit
> Sent: Thursday, November 4, 2021 7:04 PM
> To: Thomas Monjalon <thomas@monjalon.net>; Andrew Rybchenko
> <andrew.rybchenko@oktetlabs.ru>; Stephen Hemminger
> <stephen@networkplumber.org>; Matan Azrad <matan@mellanox.com>
> Cc: Yigit, Ferruh <ferruh.yigit@intel.com>; dev@dpdk.org; stable@dpdk.org;
> Matan Azrad <matan@nvidia.com>
> Subject: [dpdk-stable] [PATCH] ethdev: fix crash on owner delete
>
> 'eth_dev->data' can be null before ethdev allocated. The API walks
> through all eth devices, at least for some data can be null.
>
> Adding 'eth_dev->data' null check before accessing it.
>
> Fixes: 33c73aae32e4 ("ethdev: allow ownership operations on unused port")
> Cc: stable@dpdk.org
>
> Signed-off-by: Ferruh Yigit <ferruh.yigit@intel.com>
> ---
> Cc: Matan Azrad <matan@nvidia.com>
> ---
> lib/ethdev/rte_ethdev.c | 9 ++++++---
> 1 file changed, 6 insertions(+), 3 deletions(-)
>
> diff --git a/lib/ethdev/rte_ethdev.c b/lib/ethdev/rte_ethdev.c
> index 7db84b12d03b..8e679e4003db 100644
> --- a/lib/ethdev/rte_ethdev.c
> +++ b/lib/ethdev/rte_ethdev.c
> @@ -757,10 +757,13 @@ rte_eth_dev_owner_delete(const uint64_t owner_id)
> rte_spinlock_lock(ð_dev_shared_data->ownership_lock);
>
> if (eth_is_valid_owner_id(owner_id)) {
> - for (port_id = 0; port_id < RTE_MAX_ETHPORTS; port_id++)
> - if (rte_eth_devices[port_id].data->owner.id == owner_id)
> - memset(&rte_eth_devices[port_id].data->owner, 0,
> + for (port_id = 0; port_id < RTE_MAX_ETHPORTS; port_id++) {
> + struct rte_eth_dev_data *data =
> + rte_eth_devices[port_id].data;
> + if (data != NULL && data->owner.id == owner_id)
> + memset(&data->owner, 0,
> sizeof(struct rte_eth_dev_owner));
> + }
> RTE_ETHDEV_LOG(NOTICE,
> "All port owners owned by %016"PRIx64" identifier have
> removed\n",
> owner_id);
> --
> 2.31.1
Acked-by: Chenbo Xia <chenbo.xia@intel.com>
next prev parent reply other threads:[~2021-11-05 3:04 UTC|newest]
Thread overview: 21+ messages / expand[flat|nested] mbox.gz Atom feed top
2021-10-29 21:47 [dpdk-dev] [RFC] ethdev: mark old ETH_LINK macros as deprecated Stephen Hemminger
2021-11-01 12:30 ` Ferruh Yigit
2021-11-02 23:44 ` [dpdk-dev] [PATCH] ethdev: mark old " Ferruh Yigit
2021-11-03 0:05 ` Stephen Hemminger
2021-11-03 9:00 ` Ferruh Yigit
2021-11-03 22:48 ` [dpdk-dev] [PATCH v2] " Ferruh Yigit
2021-11-04 11:03 ` Ferruh Yigit
2021-11-04 12:59 ` Thomas Monjalon
2021-11-05 13:40 ` Andrew Rybchenko
2021-11-05 15:05 ` Thomas Monjalon
2021-11-05 16:26 ` Stephen Hemminger
2021-11-05 21:33 ` Ferruh Yigit
2021-11-06 7:46 ` Thomas Monjalon
2022-01-12 14:36 ` [PATCH v3] " Ferruh Yigit
2022-01-14 6:45 ` Xia, Chenbo
2022-01-14 9:01 ` Ferruh Yigit
2021-11-04 11:04 ` [dpdk-dev] [PATCH] ethdev: fix crash on owner delete Ferruh Yigit
2021-11-05 3:03 ` Xia, Chenbo [this message]
2021-11-05 13:16 ` [dpdk-dev] [dpdk-stable] " Thomas Monjalon
2021-11-05 13:36 ` Andrew Rybchenko
2021-11-05 14:36 ` Ferruh Yigit
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=SN6PR11MB350411A3AAE8079F23CCDF0E9C8E9@SN6PR11MB3504.namprd11.prod.outlook.com \
--to=chenbo.xia@intel.com \
--cc=andrew.rybchenko@oktetlabs.ru \
--cc=dev@dpdk.org \
--cc=ferruh.yigit@intel.com \
--cc=matan@mellanox.com \
--cc=matan@nvidia.com \
--cc=stable@dpdk.org \
--cc=stephen@networkplumber.org \
--cc=thomas@monjalon.net \
/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.