aboutsummaryrefslogtreecommitdiff
path: root/drivers/net/team/team.c
diff options
context:
space:
mode:
authorAlex Shi <alex.shi@linaro.org>2015-03-19 08:57:07 +0800
committerAlex Shi <alex.shi@linaro.org>2015-03-19 08:57:07 +0800
commit42f45c9abdea541a9f966553b5e71dd576d432f9 (patch)
treee9189f804b03d19696b0944a5a34ea9427177646 /drivers/net/team/team.c
parent4d8fd56f051e5eea61209de4a3cb0619283a30af (diff)
parentba0bfedf4c9cad58f56a7038d1462ffc21cd33df (diff)
Merge branch 'linux-linaro-lsk' into linux-linaro-lsk-androidlsk-v3.10-15.03-androidlinux-linaro-lsk-v3.10-android
Diffstat (limited to 'drivers/net/team/team.c')
-rw-r--r--drivers/net/team/team.c10
1 files changed, 4 insertions, 6 deletions
diff --git a/drivers/net/team/team.c b/drivers/net/team/team.c
index 12222290c802..14179a6593ef 100644
--- a/drivers/net/team/team.c
+++ b/drivers/net/team/team.c
@@ -42,9 +42,7 @@
static struct team_port *team_port_get_rcu(const struct net_device *dev)
{
- struct team_port *port = rcu_dereference(dev->rx_handler_data);
-
- return team_port_exists(dev) ? port : NULL;
+ return rcu_dereference(dev->rx_handler_data);
}
static struct team_port *team_port_get_rtnl(const struct net_device *dev)
@@ -1523,11 +1521,11 @@ static int team_set_mac_address(struct net_device *dev, void *p)
if (dev->type == ARPHRD_ETHER && !is_valid_ether_addr(addr->sa_data))
return -EADDRNOTAVAIL;
memcpy(dev->dev_addr, addr->sa_data, dev->addr_len);
- rcu_read_lock();
- list_for_each_entry_rcu(port, &team->port_list, list)
+ mutex_lock(&team->lock);
+ list_for_each_entry(port, &team->port_list, list)
if (team->ops.port_change_dev_addr)
team->ops.port_change_dev_addr(team, port);
- rcu_read_unlock();
+ mutex_unlock(&team->lock);
return 0;
}