From patchwork Wed Jul 4 02:28:32 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Chas Williams <3chas3@gmail.com> X-Patchwork-Id: 42198 X-Patchwork-Delegate: ferruh.yigit@amd.com Return-Path: X-Original-To: patchwork@dpdk.org Delivered-To: patchwork@dpdk.org Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id 82A811BE83; Wed, 4 Jul 2018 04:28:40 +0200 (CEST) Received: from mail-qk0-f195.google.com (mail-qk0-f195.google.com [209.85.220.195]) by dpdk.org (Postfix) with ESMTP id D44F41BE79; Wed, 4 Jul 2018 04:28:38 +0200 (CEST) Received: by mail-qk0-f195.google.com with SMTP id a132-v6so2146902qkg.3; Tue, 03 Jul 2018 19:28:38 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=/ENWxpnvhY6D+qzT9Avp5oKJn+1Dh81HzcnsLZhwQks=; b=GkgVkZ7Es/4UhM1D05WIJJIM45vARAt06nWDKX6KHmkvzMhp63hTvXYM4FBnM9cgpA UdPNbZKW3Knldx7c1I1fDLKRaTigx8bg/sFdpdAu5mBiVCW80V/Vlwi3687WJQx76g11 B2jAYpH2hsCgY9kNvXBfSymvgW8t5ml2gWo0u9bhx+nwe4CJzZLWvFvG+l8IgYlKoUq0 jDFwDlzxyzI/pv5rNkoq45Tu0Op/s/18OHVRfmUxwSUNEbLXK6kZ63GF/6oTEDMYwdZ3 MsgdfiNMQEdieQpVdXRYrzP0hD/HGRCMx2XTm+WRUW0ooNnMr84yLcQ/fybipWlaHKpa vz9A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references; bh=/ENWxpnvhY6D+qzT9Avp5oKJn+1Dh81HzcnsLZhwQks=; b=lseXlg+MEBwA5a8lENt++3Gng4oDuyBDjn8SQAI4dmrFE4eADLW/JWdqv+Igig9sDc sCwz040XqYgZlN3hzi0gJu7D+PlExH8qhEY0MiIZd+oLAvHQ7D12fwypfo5ft3A23sfX IDNnRS/Yu1C5SSWcz4FXRqYA9gtNPh/5NTETRugYu1tFYdNWGq02POPBNel5Juq/hgPi RX7ZQA338m79sgyJr3zVQnp7N32GvjbWzV43NnG1ZlybrTRaIr/ozWnqreJJBGL1VcJ1 keqM+81SCqgSKVmKzHDjBZD6KymGhLIFVZtLO+4C0zoNZOlq5tB/Dr0F0dAFmf0PN6ou vZAg== X-Gm-Message-State: APt69E0245suxNAJaEhpBQgtkadUfzRc9YVW9p05itwJyv5oflbEDcE1 j1w/DNuzXy6IMIR6D3tYAECCdw== X-Google-Smtp-Source: AAOMgpehbx5xyAPgb7pUzWajlpGBLyuGXmTLwFAGpkpHAVmfz5aWeFpGCBJjstUomU/LMXG0Fd+eQQ== X-Received: by 2002:a37:27c3:: with SMTP id n186-v6mr98578qkn.387.1530671318168; Tue, 03 Jul 2018 19:28:38 -0700 (PDT) Received: from monolith.fios-router.home (pool-173-79-169-217.washdc.fios.verizon.net. [173.79.169.217]) by smtp.gmail.com with ESMTPSA id n21-v6sm1969988qkl.34.2018.07.03.19.28.37 (version=TLS1_2 cipher=ECDHE-RSA-CHACHA20-POLY1305 bits=256/256); Tue, 03 Jul 2018 19:28:37 -0700 (PDT) From: Chas Williams <3chas3@gmail.com> To: dev@dpdk.org Cc: declan.doherty@intel.com, "Charles (Chas) Williams" , stable@dpdk.org Date: Tue, 3 Jul 2018 22:28:32 -0400 Message-Id: <20180704022832.18204-1-3chas3@gmail.com> X-Mailer: git-send-email 2.14.4 In-Reply-To: <20180606122627.18418-1-3chas3@gmail.com> References: <20180606122627.18418-1-3chas3@gmail.com> Subject: [dpdk-dev] [PATCH v2] net/bonding: don't clear active slave count X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org Sender: "dev" From: "Charles (Chas) Williams" When the bond PMD is stopped, the active slave count is reset. For 802.3ad mode this potentially leaks memory and clears state since a second sequential activate_slave() will occur when the bond PMD is restarted and the LSC callback is triggered while the active slave count is 0. To fix this, don't clear the active slave count when stopping. Only deactivate_slave() should be used to clear the slaves. Fixes: 2efb58cbab6e ("bond: new link bonding library") Cc: stable@dpdk.org Signed-off-by: Chas Williams --- drivers/net/bonding/rte_eth_bond_pmd.c | 1 - 1 file changed, 1 deletion(-) diff --git a/drivers/net/bonding/rte_eth_bond_pmd.c b/drivers/net/bonding/rte_eth_bond_pmd.c index e32fa3976..3f3cddf26 100644 --- a/drivers/net/bonding/rte_eth_bond_pmd.c +++ b/drivers/net/bonding/rte_eth_bond_pmd.c @@ -2229,7 +2229,6 @@ bond_ethdev_stop(struct rte_eth_dev *eth_dev) tlb_last_obytets[internals->active_slaves[i]] = 0; } - internals->active_slave_count = 0; internals->link_status_polling_enabled = 0; for (i = 0; i < internals->slave_count; i++) internals->slaves[i].last_link_status = 0;