From mboxrd@z Thu Jan 1 00:00:00 1970 From: Jan Blunck Subject: [PATCH] Make bond_ethdev_stop iterate only over active slaves Date: Wed, 24 Jun 2015 14:01:23 -0700 Message-ID: <1435179683-10180-1-git-send-email-jblunck@infradead.org> To: dev@dpdk.org Return-path: Received: from mail-pa0-f47.google.com (mail-pa0-f47.google.com [209.85.220.47]) by dpdk.org (Postfix) with ESMTP id D5A93C498 for ; Wed, 24 Jun 2015 23:01:56 +0200 (CEST) Received: by padev16 with SMTP id ev16so35997756pad.0 for ; Wed, 24 Jun 2015 14:01:56 -0700 (PDT) Received: from linux-06jr.site.brocade.com ([144.49.131.1]) by mx.google.com with ESMTPSA id cc5sm10130869pac.24.2015.06.24.14.01.54 for (version=TLSv1.2 cipher=ECDHE-RSA-AES128-SHA bits=128/128); Wed, 24 Jun 2015 14:01:55 -0700 (PDT) List-Id: patches and discussions about DPDK List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org Sender: "dev" When stopping the bond device we don't need to try and free up the LACPDU's from deactivated devices since this is covered by bond_mode_8023ad_deactivate_slave(). This fixes the following: [ 0.100569] PANIC in bond_ethdev_stop(): [ 0.100589] line 1172 assert "port->rx_ring != NULL" failed Signed-off-by: Jan Blunck --- drivers/net/bonding/rte_eth_bond_pmd.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/drivers/net/bonding/rte_eth_bond_pmd.c b/drivers/net/bonding/rte_eth_bond_pmd.c index 5a2fbef..1fd1321 100644 --- a/drivers/net/bonding/rte_eth_bond_pmd.c +++ b/drivers/net/bonding/rte_eth_bond_pmd.c @@ -1520,8 +1520,8 @@ bond_ethdev_stop(struct rte_eth_dev *eth_dev) bond_mode_8023ad_stop(eth_dev); /* Discard all messages to/from mode 4 state machines */ - for (i = 0; i < internals->slave_count; i++) { - port = &mode_8023ad_ports[internals->slaves[i].port_id]; + for (i = 0; i < internals->active_slave_count; i++) { + port = &mode_8023ad_ports[internals->active_slaves[i]]; RTE_VERIFY(port->rx_ring != NULL); while (rte_ring_dequeue(port->rx_ring, &pkt) != -ENOENT) -- 2.1.4