summaryrefslogtreecommitdiff
path: root/drivers/net/team/team.c
diff options
context:
space:
mode:
authorFlavio Leitner <fbl@redhat.com>2012-12-29 19:31:01 +0400
committerDavid S. Miller <davem@davemloft.net>2012-12-30 14:31:58 +0400
commit4cafe373d40dd9893a301fa83dc99abb80a2bd0b (patch)
treeafb1e82d88c73343bba3c02b8334a0cf4b7fda66 /drivers/net/team/team.c
parent576eb62598f10c8c7fd75703fe89010cdcfff596 (diff)
downloadlinux-4cafe373d40dd9893a301fa83dc99abb80a2bd0b.tar.xz
team: implement carrier change
The user space teamd daemon may need to control the master's carrier state depending on the selected mode. Signed-off-by: Flavio Leitner <fbl@redhat.com> Acked-by: Jiri Pirko <jiri@resnulli.us> Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'drivers/net/team/team.c')
-rw-r--r--drivers/net/team/team.c10
1 files changed, 10 insertions, 0 deletions
diff --git a/drivers/net/team/team.c b/drivers/net/team/team.c
index ad86660fb8f9..27a6edeb376f 100644
--- a/drivers/net/team/team.c
+++ b/drivers/net/team/team.c
@@ -1707,6 +1707,15 @@ static netdev_features_t team_fix_features(struct net_device *dev,
return features;
}
+static int team_change_carrier(struct net_device *dev, bool new_carrier)
+{
+ if (new_carrier)
+ netif_carrier_on(dev);
+ else
+ netif_carrier_off(dev);
+ return 0;
+}
+
static const struct net_device_ops team_netdev_ops = {
.ndo_init = team_init,
.ndo_uninit = team_uninit,
@@ -1729,6 +1738,7 @@ static const struct net_device_ops team_netdev_ops = {
.ndo_add_slave = team_add_slave,
.ndo_del_slave = team_del_slave,
.ndo_fix_features = team_fix_features,
+ .ndo_change_carrier = team_change_carrier,
};