From: Nikolay Aleksandrov <hidden> Date: 2017-09-12 12:10:21
Commit 8b426dc54cf4 ("bonding: remove hardcoded value") changed the
default value for tlb_dynamic_lb which lead to either broken ALB mode
(since tlb_dynamic_lb can be changed only in TLB) or setting TLB mode
with tlb_dynamic_lb equal to 0.
The first issue was recently fixed by setting tlb_dynamic_lb to 1 always
when switching to ALB mode, but the default value is still wrong and
we'll enter TLB mode with tlb_dynamic_lb equal to 0 if the mode is
changed via netlink or sysfs. In order to restore the previous behaviour
and default value simply remove the mode check around the default param
initialization for tlb_dynamic_lb which will always set it to 1 as
before.
Fixes: 8b426dc54cf4 ("bonding: remove hardcoded value")
Signed-off-by: Nikolay Aleksandrov <redacted>
---
drivers/net/bonding/bond_main.c | 17 +++++++----------
1 file changed, 7 insertions(+), 10 deletions(-)
@@ -4601,16 +4601,13 @@ static int bond_check_params(struct bond_params *params)}ad_user_port_key=valptr->value;-if((bond_mode==BOND_MODE_TLB)||(bond_mode==BOND_MODE_ALB)){-bond_opt_initstr(&newval,"default");-valptr=bond_opt_parse(bond_opt_get(BOND_OPT_TLB_DYNAMIC_LB),-&newval);-if(!valptr){-pr_err("Error: No tlb_dynamic_lb default value");-return-EINVAL;-}-tlb_dynamic_lb=valptr->value;+bond_opt_initstr(&newval,"default");+valptr=bond_opt_parse(bond_opt_get(BOND_OPT_TLB_DYNAMIC_LB),&newval);+if(!valptr){+pr_err("Error: No tlb_dynamic_lb default value");+return-EINVAL;}+tlb_dynamic_lb=valptr->value;if(lp_interval==0){pr_warn("Warning: ip_interval must be between 1 and %d, so it was reset to %d\n",
On Tue, Sep 12, 2017 at 5:10 AM, Nikolay Aleksandrov
[off-list ref] wrote:
Commit 8b426dc54cf4 ("bonding: remove hardcoded value") changed the
default value for tlb_dynamic_lb which lead to either broken ALB mode
(since tlb_dynamic_lb can be changed only in TLB) or setting TLB mode
with tlb_dynamic_lb equal to 0.
The first issue was recently fixed by setting tlb_dynamic_lb to 1 always
when switching to ALB mode, but the default value is still wrong and
we'll enter TLB mode with tlb_dynamic_lb equal to 0 if the mode is
changed via netlink or sysfs. In order to restore the previous behaviour
and default value simply remove the mode check around the default param
initialization for tlb_dynamic_lb which will always set it to 1 as
before.
Fixes: 8b426dc54cf4 ("bonding: remove hardcoded value")
Signed-off-by: Nikolay Aleksandrov <redacted>
@@ -4601,16 +4601,13 @@ static int bond_check_params(struct bond_params *params)}ad_user_port_key=valptr->value;-if((bond_mode==BOND_MODE_TLB)||(bond_mode==BOND_MODE_ALB)){-bond_opt_initstr(&newval,"default");-valptr=bond_opt_parse(bond_opt_get(BOND_OPT_TLB_DYNAMIC_LB),-&newval);-if(!valptr){-pr_err("Error: No tlb_dynamic_lb default value");-return-EINVAL;-}-tlb_dynamic_lb=valptr->value;+bond_opt_initstr(&newval,"default");+valptr=bond_opt_parse(bond_opt_get(BOND_OPT_TLB_DYNAMIC_LB),&newval);+if(!valptr){+pr_err("Error: No tlb_dynamic_lb default value");+return-EINVAL;}+tlb_dynamic_lb=valptr->value;if(lp_interval==0){pr_warn("Warning: ip_interval must be between 1 and %d, so it was reset to %d\n",--
Commit 8b426dc54cf4 ("bonding: remove hardcoded value") changed the
default value for tlb_dynamic_lb which lead to either broken ALB mode
(since tlb_dynamic_lb can be changed only in TLB) or setting TLB mode
with tlb_dynamic_lb equal to 0.
The first issue was recently fixed by setting tlb_dynamic_lb to 1 always
when switching to ALB mode, but the default value is still wrong and
we'll enter TLB mode with tlb_dynamic_lb equal to 0 if the mode is
changed via netlink or sysfs. In order to restore the previous behaviour
and default value simply remove the mode check around the default param
initialization for tlb_dynamic_lb which will always set it to 1 as
before.
Fixes: 8b426dc54cf4 ("bonding: remove hardcoded value")
Signed-off-by: Nikolay Aleksandrov <redacted>