Commit f13ad104 authored by Nikolay Aleksandrov's avatar Nikolay Aleksandrov Committed by David S. Miller

net: bonding: fix tlb_dynamic_lb default value

Commit 8b426dc5 ("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: 8b426dc5 ("bonding: remove hardcoded value")
Signed-off-by: default avatarNikolay Aleksandrov <nikolay@cumulusnetworks.com>
Acked-by: default avatarMahesh Bandewar <maheshb@google.com>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent 6c1cb439
...@@ -4289,7 +4289,7 @@ static int bond_check_params(struct bond_params *params) ...@@ -4289,7 +4289,7 @@ static int bond_check_params(struct bond_params *params)
int bond_mode = BOND_MODE_ROUNDROBIN; int bond_mode = BOND_MODE_ROUNDROBIN;
int xmit_hashtype = BOND_XMIT_POLICY_LAYER2; int xmit_hashtype = BOND_XMIT_POLICY_LAYER2;
int lacp_fast = 0; int lacp_fast = 0;
int tlb_dynamic_lb = 0; int tlb_dynamic_lb;
/* Convert string parameters. */ /* Convert string parameters. */
if (mode) { if (mode) {
...@@ -4601,16 +4601,13 @@ static int bond_check_params(struct bond_params *params) ...@@ -4601,16 +4601,13 @@ static int bond_check_params(struct bond_params *params)
} }
ad_user_port_key = valptr->value; ad_user_port_key = valptr->value;
if ((bond_mode == BOND_MODE_TLB) || (bond_mode == BOND_MODE_ALB)) { bond_opt_initstr(&newval, "default");
bond_opt_initstr(&newval, "default"); valptr = bond_opt_parse(bond_opt_get(BOND_OPT_TLB_DYNAMIC_LB), &newval);
valptr = bond_opt_parse(bond_opt_get(BOND_OPT_TLB_DYNAMIC_LB), if (!valptr) {
&newval); pr_err("Error: No tlb_dynamic_lb default value");
if (!valptr) { return -EINVAL;
pr_err("Error: No tlb_dynamic_lb default value");
return -EINVAL;
}
tlb_dynamic_lb = valptr->value;
} }
tlb_dynamic_lb = valptr->value;
if (lp_interval == 0) { if (lp_interval == 0) {
pr_warn("Warning: ip_interval must be between 1 and %d, so it was reset to %d\n", pr_warn("Warning: ip_interval must be between 1 and %d, so it was reset to %d\n",
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment