[dpdk-stable] patch 'net/bnxt: fix checking VNIC in shutdown path' has been queued to stable release 19.11.6
Somnath Kotur
somnath.kotur at broadcom.com
Thu Oct 29 07:29:33 CET 2020
On Wed, Oct 28, 2020 at 4:18 PM <luca.boccassi at gmail.com> wrote:
>
> Hi,
>
> FYI, your patch has been queued to stable release 19.11.6
>
> Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
> It will be pushed if I get no objections before 10/30/20. So please
> shout if anyone has objections.
>
> Also note that after the patch there's a diff of the upstream commit vs the
> patch applied to the branch. This will indicate if there was any rebasing
> needed to apply to the stable branch. If there were code changes for rebasing
> (ie: not only metadata diffs), please double check that the rebase was
> correctly done.
>
> Thanks.
>
> Luca Boccassi
>
> ---
> From 590892526b436a852d0af36e55be8e15e110a1f1 Mon Sep 17 00:00:00 2001
> From: Somnath Kotur <somnath.kotur at broadcom.com>
> Date: Thu, 10 Sep 2020 18:56:02 -0700
> Subject: [PATCH] net/bnxt: fix checking VNIC in shutdown path
>
> [ upstream commit 4b029f02de3a0ce9cdd9a3475b84ca2e42d74281 ]
>
> Add a couple of NULL pointer checks in bnxt_free_all_filters()
> and bnxt_free_vnics() respectively to guard against certain error
> injection/recovery scenarios where it was found that the application
> was crashing with the bp->vnic_info pointer being NULL.
>
> Fixes: 51fafb89a9a0 ("net/bnxt: get rid of ff pools and use VNIC info array")
>
> Signed-off-by: Somnath Kotur <somnath.kotur at broadcom.com>
> Reviewed-by: Ajit Khaparde <ajit.khaparde at broadcom.com>
> ---
> drivers/net/bnxt/bnxt_filter.c | 15 +++++++++------
> drivers/net/bnxt/bnxt_vnic.c | 3 +++
> 2 files changed, 12 insertions(+), 6 deletions(-)
>
> diff --git a/drivers/net/bnxt/bnxt_filter.c b/drivers/net/bnxt/bnxt_filter.c
> index 622a9bb417..f4b18d5b84 100644
> --- a/drivers/net/bnxt/bnxt_filter.c
> +++ b/drivers/net/bnxt/bnxt_filter.c
> @@ -81,6 +81,15 @@ void bnxt_free_all_filters(struct bnxt *bp)
> struct bnxt_filter_info *filter, *temp_filter;
> unsigned int i;
>
> + for (i = 0; i < bp->pf.max_vfs; i++) {
> + STAILQ_FOREACH(filter, &bp->pf.vf_info[i].filter, next) {
> + bnxt_hwrm_clear_l2_filter(bp, filter);
> + }
> + }
> +
> + if (bp->vnic_info == NULL)
> + return;
> +
> for (i = 0; i < bp->nr_vnics; i++) {
> vnic = &bp->vnic_info[i];
> filter = STAILQ_FIRST(&vnic->filter);
> @@ -94,12 +103,6 @@ void bnxt_free_all_filters(struct bnxt *bp)
> }
> STAILQ_INIT(&vnic->filter);
> }
> -
> - for (i = 0; i < bp->pf.max_vfs; i++) {
> - STAILQ_FOREACH(filter, &bp->pf.vf_info[i].filter, next) {
> - bnxt_hwrm_clear_l2_filter(bp, filter);
> - }
> - }
> }
>
> void bnxt_free_filter_mem(struct bnxt *bp)
> diff --git a/drivers/net/bnxt/bnxt_vnic.c b/drivers/net/bnxt/bnxt_vnic.c
> index bc054a8e0e..ef07721148 100644
> --- a/drivers/net/bnxt/bnxt_vnic.c
> +++ b/drivers/net/bnxt/bnxt_vnic.c
> @@ -78,6 +78,9 @@ void bnxt_free_all_vnics(struct bnxt *bp)
> struct bnxt_vnic_info *vnic;
> unsigned int i;
>
> + if (bp->vnic_info == NULL)
> + return;
> +
> for (i = 0; i < bp->max_vnics; i++) {
> vnic = &bp->vnic_info[i];
> STAILQ_INSERT_TAIL(&bp->free_vnic_list, vnic, next);
> --
> 2.20.1
>
> ---
> Diff of the applied patch vs upstream commit (please double-check if non-empty:
> ---
> --- - 2020-10-28 10:35:13.164340871 +0000
> +++ 0044-net-bnxt-fix-checking-VNIC-in-shutdown-path.patch 2020-10-28 10:35:11.504830024 +0000
> @@ -1,33 +1,34 @@
> -From 4b029f02de3a0ce9cdd9a3475b84ca2e42d74281 Mon Sep 17 00:00:00 2001
> +From 590892526b436a852d0af36e55be8e15e110a1f1 Mon Sep 17 00:00:00 2001
> From: Somnath Kotur <somnath.kotur at broadcom.com>
> Date: Thu, 10 Sep 2020 18:56:02 -0700
> Subject: [PATCH] net/bnxt: fix checking VNIC in shutdown path
>
> +[ upstream commit 4b029f02de3a0ce9cdd9a3475b84ca2e42d74281 ]
> +
> Add a couple of NULL pointer checks in bnxt_free_all_filters()
> and bnxt_free_vnics() respectively to guard against certain error
> injection/recovery scenarios where it was found that the application
> was crashing with the bp->vnic_info pointer being NULL.
>
> Fixes: 51fafb89a9a0 ("net/bnxt: get rid of ff pools and use VNIC info array")
> -Cc: stable at dpdk.org
>
> Signed-off-by: Somnath Kotur <somnath.kotur at broadcom.com>
> Reviewed-by: Ajit Khaparde <ajit.khaparde at broadcom.com>
> ---
> - drivers/net/bnxt/bnxt_filter.c | 14 +++++++++-----
> + drivers/net/bnxt/bnxt_filter.c | 15 +++++++++------
> drivers/net/bnxt/bnxt_vnic.c | 3 +++
> - 2 files changed, 12 insertions(+), 5 deletions(-)
> + 2 files changed, 12 insertions(+), 6 deletions(-)
>
> diff --git a/drivers/net/bnxt/bnxt_filter.c b/drivers/net/bnxt/bnxt_filter.c
> -index d822ff607c..6d85983242 100644
> +index 622a9bb417..f4b18d5b84 100644
> --- a/drivers/net/bnxt/bnxt_filter.c
> +++ b/drivers/net/bnxt/bnxt_filter.c
> @@ -81,6 +81,15 @@ void bnxt_free_all_filters(struct bnxt *bp)
> struct bnxt_filter_info *filter, *temp_filter;
> unsigned int i;
>
> -+ for (i = 0; i < bp->pf->max_vfs; i++) {
> -+ STAILQ_FOREACH(filter, &bp->pf->vf_info[i].filter, next) {
> ++ for (i = 0; i < bp->pf.max_vfs; i++) {
> ++ STAILQ_FOREACH(filter, &bp->pf.vf_info[i].filter, next) {
> + bnxt_hwrm_clear_l2_filter(bp, filter);
> + }
> + }
> @@ -38,12 +39,13 @@
> for (i = 0; i < bp->nr_vnics; i++) {
> vnic = &bp->vnic_info[i];
> filter = STAILQ_FIRST(&vnic->filter);
> -@@ -95,11 +104,6 @@ void bnxt_free_all_filters(struct bnxt *bp)
> +@@ -94,12 +103,6 @@ void bnxt_free_all_filters(struct bnxt *bp)
> + }
> STAILQ_INIT(&vnic->filter);
> }
> -
> -- for (i = 0; i < bp->pf->max_vfs; i++) {
> -- STAILQ_FOREACH(filter, &bp->pf->vf_info[i].filter, next) {
> +-
> +- for (i = 0; i < bp->pf.max_vfs; i++) {
> +- STAILQ_FOREACH(filter, &bp->pf.vf_info[i].filter, next) {
> - bnxt_hwrm_clear_l2_filter(bp, filter);
> - }
> - }
> @@ -51,7 +53,7 @@
>
> void bnxt_free_filter_mem(struct bnxt *bp)
> diff --git a/drivers/net/bnxt/bnxt_vnic.c b/drivers/net/bnxt/bnxt_vnic.c
> -index 326c0d1b6d..9a135ae881 100644
> +index bc054a8e0e..ef07721148 100644
> --- a/drivers/net/bnxt/bnxt_vnic.c
> +++ b/drivers/net/bnxt/bnxt_vnic.c
> @@ -78,6 +78,9 @@ void bnxt_free_all_vnics(struct bnxt *bp)
Luca,
I see that the rebase is not correct, you'd want me to
re-spin the corrected version and send it to the 'stable' mailing
list, right?
Thanks
Som
More information about the stable
mailing list