Skip to content

Commit

Permalink
net/bonding: Export bond_option_active_slave_get_rcu
Browse files Browse the repository at this point in the history
Some consumers of the netdev events API would like to know who is the
active slave when a NETDEV_CHANGEUPPER or NETDEV_BONDING_FAILOVER
events occur. For example, when managing RoCE GIDs, GIDs based on the
bond's ips should only be set on the port which corresponds to active
slave netdevice.

Signed-off-by: Matan Barak <matanb@mellanox.com>
Signed-off-by: Doug Ledford <dledford@redhat.com>
  • Loading branch information
Matan Barak authored and Doug Ledford committed Aug 30, 2015
1 parent 816dd19 commit e999869
Show file tree
Hide file tree
Showing 2 changed files with 7 additions and 13 deletions.
13 changes: 0 additions & 13 deletions drivers/net/bonding/bond_options.c
Original file line number Diff line number Diff line change
Expand Up @@ -730,19 +730,6 @@ static int bond_option_mode_set(struct bonding *bond,
return 0;
}

static struct net_device *__bond_option_active_slave_get(struct bonding *bond,
struct slave *slave)
{
return bond_uses_primary(bond) && slave ? slave->dev : NULL;
}

struct net_device *bond_option_active_slave_get_rcu(struct bonding *bond)
{
struct slave *slave = rcu_dereference(bond->curr_active_slave);

return __bond_option_active_slave_get(bond, slave);
}

static int bond_option_active_slave_set(struct bonding *bond,
const struct bond_opt_value *newval)
{
Expand Down
7 changes: 7 additions & 0 deletions include/net/bonding.h
Original file line number Diff line number Diff line change
Expand Up @@ -310,6 +310,13 @@ static inline bool bond_uses_primary(struct bonding *bond)
return bond_mode_uses_primary(BOND_MODE(bond));
}

static inline struct net_device *bond_option_active_slave_get_rcu(struct bonding *bond)
{
struct slave *slave = rcu_dereference(bond->curr_active_slave);

return bond_uses_primary(bond) && slave ? slave->dev : NULL;
}

static inline bool bond_slave_is_up(struct slave *slave)
{
return netif_running(slave->dev) && netif_carrier_ok(slave->dev);
Expand Down

0 comments on commit e999869

Please sign in to comment.