From mboxrd@z Thu Jan 1 00:00:00 1970 From: Bernard Iremonger Subject: [PATCH] bonding: fix crash when no slave devices Date: Tue, 23 Feb 2016 12:13:00 +0000 Message-ID: <1456229580-25009-1-git-send-email-bernard.iremonger@intel.com> To: dev@dpdk.org Return-path: Received: from mga03.intel.com (mga03.intel.com [134.134.136.65]) by dpdk.org (Postfix) with ESMTP id 5CBAF2BE2 for ; Tue, 23 Feb 2016 13:13:09 +0100 (CET) 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" If a bonded device is created when there are no slave devices there is loop in bond_ethdev_promiscous_enable() which results in a segmentation fault. I have applied a similar fix to bond_ethdev_promiscous_disable() where a similar loop could occur. Fixes: 2efb58cbab6e ("bond: new link bonding library") Signed-off-by: Bernard Iremonger --- drivers/net/bonding/rte_eth_bond_pmd.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/drivers/net/bonding/rte_eth_bond_pmd.c b/drivers/net/bonding/rte_eth_bond_pmd.c index b63c886..78972fc 100644 --- a/drivers/net/bonding/rte_eth_bond_pmd.c +++ b/drivers/net/bonding/rte_eth_bond_pmd.c @@ -1870,7 +1870,8 @@ bond_ethdev_promiscuous_enable(struct rte_eth_dev *eth_dev) case BONDING_MODE_TLB: case BONDING_MODE_ALB: default: - rte_eth_promiscuous_enable(internals->current_primary_port); + if (internals->slave_count > 0) + rte_eth_promiscuous_enable(internals->current_primary_port); } } @@ -1898,7 +1899,8 @@ bond_ethdev_promiscuous_disable(struct rte_eth_dev *dev) case BONDING_MODE_TLB: case BONDING_MODE_ALB: default: - rte_eth_promiscuous_disable(internals->current_primary_port); + if (internals->slave_count > 0) + rte_eth_promiscuous_disable(internals->current_primary_port); } } -- 2.6.3