Message ID | 1457350840-29426-1-git-send-email-bernard.iremonger@intel.com |
---|---|
State | Accepted, archived |
Delegated to: | Bruce Richardson |
Headers | show |
On 3/7/2016 11:40 AM, Bernard Iremonger wrote: > 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. > > The solution is to initialise the current_primary_port to an > invalid port value when the bonded port is created. > > Fixes: 2efb58cbab6e ("bond: new link bonding library") > Signed-off-by: Bernard Iremonger <bernard.iremonger@intel.com> Acked-by: Ferruh Yigit <ferruh.yigit@intel.com>
On Mon, Mar 07, 2016 at 12:14:51PM +0000, Ferruh Yigit wrote: > On 3/7/2016 11:40 AM, Bernard Iremonger wrote: > > 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. > > > > The solution is to initialise the current_primary_port to an > > invalid port value when the bonded port is created. > > > > Fixes: 2efb58cbab6e ("bond: new link bonding library") > > Signed-off-by: Bernard Iremonger <bernard.iremonger@intel.com> > > Acked-by: Ferruh Yigit <ferruh.yigit@intel.com> Applied to dpdk-next-net/rel_16_04 /Bruce
diff --git a/drivers/net/bonding/rte_eth_bond_api.c b/drivers/net/bonding/rte_eth_bond_api.c index a0995ec..1d67a0c 100644 --- a/drivers/net/bonding/rte_eth_bond_api.c +++ b/drivers/net/bonding/rte_eth_bond_api.c @@ -231,7 +231,7 @@ rte_eth_bond_create(const char *name, uint8_t mode, uint8_t socket_id) internals->port_id = eth_dev->data->port_id; internals->mode = BONDING_MODE_INVALID; - internals->current_primary_port = 0; + internals->current_primary_port = RTE_MAX_ETHPORTS + 1; internals->balance_xmit_policy = BALANCE_XMIT_POLICY_LAYER2; internals->xmit_hash = xmit_l2_hash; internals->user_defined_mac = 0;
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. The solution is to initialise the current_primary_port to an invalid port value when the bonded port is created. Fixes: 2efb58cbab6e ("bond: new link bonding library") Signed-off-by: Bernard Iremonger <bernard.iremonger@intel.com> --- Changes in V2: Set current_primary_port to an invalid value. drivers/net/bonding/rte_eth_bond_api.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)