diff options
author | Roopa Prabhu <roopa@cumulusnetworks.com> | 2014-12-08 17:04:20 -0500 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2014-12-09 18:24:47 -0500 |
commit | 1d460b988d97c5283e85c5bd00a7aafd5f1304b7 (patch) | |
tree | 8e61f1d98fffb4f95364966bcb97a4bc051d91f0 | |
parent | fc0bdbbc67c9f7307d41f415abb1165778fe803f (diff) |
rocker: remove swdev mode
Remove use of 'swdev' mode in rocker. rocker dev offloads
can use the BRIDGE_FLAGS_SELF to indicate offload to hardware.
Signed-off-by: Roopa Prabhu <roopa@cumulusnetworks.com>
Signed-off-by: Scott Feldman <sfeldma@gmail.com>
Signed-off-by: Jiri Pirko <jiri@resnulli.us>
Signed-off-by: David S. Miller <davem@davemloft.net>
-rw-r--r-- | drivers/net/ethernet/rocker/rocker.c | 18 | ||||
-rw-r--r-- | net/core/rtnetlink.c | 10 |
2 files changed, 9 insertions, 19 deletions
diff --git a/drivers/net/ethernet/rocker/rocker.c b/drivers/net/ethernet/rocker/rocker.c index 55364359b868..2f398fa4b9e6 100644 --- a/drivers/net/ethernet/rocker/rocker.c +++ b/drivers/net/ethernet/rocker/rocker.c | |||
@@ -3717,27 +3717,11 @@ static int rocker_port_bridge_setlink(struct net_device *dev, | |||
3717 | { | 3717 | { |
3718 | struct rocker_port *rocker_port = netdev_priv(dev); | 3718 | struct rocker_port *rocker_port = netdev_priv(dev); |
3719 | struct nlattr *protinfo; | 3719 | struct nlattr *protinfo; |
3720 | struct nlattr *afspec; | ||
3721 | struct nlattr *attr; | 3720 | struct nlattr *attr; |
3722 | u16 mode; | ||
3723 | int err; | 3721 | int err; |
3724 | 3722 | ||
3725 | protinfo = nlmsg_find_attr(nlh, sizeof(struct ifinfomsg), | 3723 | protinfo = nlmsg_find_attr(nlh, sizeof(struct ifinfomsg), |
3726 | IFLA_PROTINFO); | 3724 | IFLA_PROTINFO); |
3727 | afspec = nlmsg_find_attr(nlh, sizeof(struct ifinfomsg), IFLA_AF_SPEC); | ||
3728 | |||
3729 | if (afspec) { | ||
3730 | attr = nla_find_nested(afspec, IFLA_BRIDGE_MODE); | ||
3731 | if (attr) { | ||
3732 | if (nla_len(attr) < sizeof(mode)) | ||
3733 | return -EINVAL; | ||
3734 | |||
3735 | mode = nla_get_u16(attr); | ||
3736 | if (mode != BRIDGE_MODE_SWDEV) | ||
3737 | return -EINVAL; | ||
3738 | } | ||
3739 | } | ||
3740 | |||
3741 | if (protinfo) { | 3725 | if (protinfo) { |
3742 | attr = nla_find_nested(protinfo, IFLA_BRPORT_LEARNING); | 3726 | attr = nla_find_nested(protinfo, IFLA_BRPORT_LEARNING); |
3743 | if (attr) { | 3727 | if (attr) { |
@@ -3772,7 +3756,7 @@ static int rocker_port_bridge_getlink(struct sk_buff *skb, u32 pid, u32 seq, | |||
3772 | u32 filter_mask) | 3756 | u32 filter_mask) |
3773 | { | 3757 | { |
3774 | struct rocker_port *rocker_port = netdev_priv(dev); | 3758 | struct rocker_port *rocker_port = netdev_priv(dev); |
3775 | u16 mode = BRIDGE_MODE_SWDEV; | 3759 | u16 mode = BRIDGE_MODE_UNDEF; |
3776 | u32 mask = BR_LEARNING | BR_LEARNING_SYNC; | 3760 | u32 mask = BR_LEARNING | BR_LEARNING_SYNC; |
3777 | 3761 | ||
3778 | return ndo_dflt_bridge_getlink(skb, pid, seq, dev, mode, | 3762 | return ndo_dflt_bridge_getlink(skb, pid, seq, dev, mode, |
diff --git a/net/core/rtnetlink.c b/net/core/rtnetlink.c index a9be2c161702..eaa057f14bcd 100644 --- a/net/core/rtnetlink.c +++ b/net/core/rtnetlink.c | |||
@@ -2751,11 +2751,17 @@ int ndo_dflt_bridge_getlink(struct sk_buff *skb, u32 pid, u32 seq, | |||
2751 | if (!br_afspec) | 2751 | if (!br_afspec) |
2752 | goto nla_put_failure; | 2752 | goto nla_put_failure; |
2753 | 2753 | ||
2754 | if (nla_put_u16(skb, IFLA_BRIDGE_FLAGS, BRIDGE_FLAGS_SELF) || | 2754 | if (nla_put_u16(skb, IFLA_BRIDGE_FLAGS, BRIDGE_FLAGS_SELF)) { |
2755 | nla_put_u16(skb, IFLA_BRIDGE_MODE, mode)) { | ||
2756 | nla_nest_cancel(skb, br_afspec); | 2755 | nla_nest_cancel(skb, br_afspec); |
2757 | goto nla_put_failure; | 2756 | goto nla_put_failure; |
2758 | } | 2757 | } |
2758 | |||
2759 | if (mode != BRIDGE_MODE_UNDEF) { | ||
2760 | if (nla_put_u16(skb, IFLA_BRIDGE_MODE, mode)) { | ||
2761 | nla_nest_cancel(skb, br_afspec); | ||
2762 | goto nla_put_failure; | ||
2763 | } | ||
2764 | } | ||
2759 | nla_nest_end(skb, br_afspec); | 2765 | nla_nest_end(skb, br_afspec); |
2760 | 2766 | ||
2761 | protinfo = nla_nest_start(skb, IFLA_PROTINFO | NLA_F_NESTED); | 2767 | protinfo = nla_nest_start(skb, IFLA_PROTINFO | NLA_F_NESTED); |