mirror of
https://mirrors.bfsu.edu.cn/git/linux.git
synced 2024-11-25 13:14:07 +08:00
net: bonding: fix tlb_dynamic_lb default value
Commit8b426dc54c
("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:8b426dc54c
("bonding: remove hardcoded value") Signed-off-by: Nikolay Aleksandrov <nikolay@cumulusnetworks.com> Acked-by: Mahesh Bandewar <maheshb@google.com> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
parent
6c1cb4393c
commit
f13ad104b4
@ -4289,7 +4289,7 @@ static int bond_check_params(struct bond_params *params)
|
||||
int bond_mode = BOND_MODE_ROUNDROBIN;
|
||||
int xmit_hashtype = BOND_XMIT_POLICY_LAYER2;
|
||||
int lacp_fast = 0;
|
||||
int tlb_dynamic_lb = 0;
|
||||
int tlb_dynamic_lb;
|
||||
|
||||
/* Convert string parameters. */
|
||||
if (mode) {
|
||||
@ -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",
|
||||
|
Loading…
Reference in New Issue
Block a user