bonding: fix enslaving in alb mode when link down
authorJiri Bohac <jbohac@suse.cz>
Wed, 18 Jan 2012 12:24:54 +0000 (12:24 +0000)
committerDavid S. Miller <davem@davemloft.net>
Thu, 19 Jan 2012 01:59:53 +0000 (20:59 -0500)
commitb924551bed09f61b64f21bffe241afc5526b091a
treecafe1bd4b49cf92ef799c86f8d28c9eb02677c0b
parent2b53d07891630dead46d65c8f896955fd3ae0302
bonding: fix enslaving in alb mode when link down

bond_alb_init_slave() is called from bond_enslave() and sets the slave's MAC
address. This is done differently for TLB and ALB modes.
bond->alb_info.rlb_enabled is used to discriminate between the two modes but
this flag may be uninitialized if the slave is being enslaved prior to calling
bond_open() -> bond_alb_initialize() on the master.

It turns out all the callers of alb_set_slave_mac_addr() pass
bond->alb_info.rlb_enabled as the hw parameter.

This patch cleans up the unnecessary parameter of alb_set_slave_mac_addr() and
makes the function decide based on the bonding mode instead, which fixes the
above problem.

Reported-by: Narendra K <Narendra_K@Dell.com>
Signed-off-by: Jiri Bohac <jbohac@suse.cz>
Signed-off-by: Jay Vosburgh <fubar@us.ibm.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/bonding/bond_alb.c