Message ID | 1378846691-9717-7-git-send-email-vfalico@redhat.com |
---|---|
State | Deferred, archived |
Delegated to: | David Miller |
Headers | show |
diff --git a/drivers/net/bonding/bonding.h b/drivers/net/bonding/bonding.h index f7ab161..6d1a893 100644 --- a/drivers/net/bonding/bonding.h +++ b/drivers/net/bonding/bonding.h @@ -275,13 +275,8 @@ struct bonding { static inline struct slave *bond_get_slave_by_dev(struct bonding *bond, struct net_device *slave_dev) { - struct slave *slave = NULL; - - bond_for_each_slave(bond, slave) - if (slave->dev == slave_dev) - return slave; - - return NULL; + return (struct slave *)netdev_lower_dev_get_private(bond->dev, + slave_dev); } static inline struct bonding *bond_get_bond_by_slave(struct slave *slave)
It should be used under rtnl/bonding lock, so use the non-RCU version. CC: Jay Vosburgh <fubar@us.ibm.com> CC: Andy Gospodarek <andy@greyhouse.net> Signed-off-by: Veaceslav Falico <vfalico@redhat.com> --- Notes: v1 -> v2: No changes. RFC -> v1: Move the patch right after we've populated ->private with bonding. drivers/net/bonding/bonding.h | 9 ++------- 1 file changed, 2 insertions(+), 7 deletions(-)