> -----Original Message----- > From: dev [mailto:dev-bounces at dpdk.org] On Behalf Of Jan Blunck > Sent: Wednesday, June 24, 2015 2:01 PM > To: dev at dpdk.org > Subject: [dpdk-dev] [PATCH] Make bond_ethdev_stop iterate only over active > slaves > > 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 <jblunck at infradead.org> > --- > 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
Acked-by : Declan Doherty <declan.doherty at intel.com>