aboutsummaryrefslogtreecommitdiffstats
path: root/net/switchdev/switchdev.c
diff options
context:
space:
mode:
authorDavid S. Miller <davem@davemloft.net>2016-10-30 12:42:58 -0400
committerDavid S. Miller <davem@davemloft.net>2016-10-30 12:42:58 -0400
commit27058af401e49d88a905df000dd26f443fcfa8ce (patch)
tree819f32113d3b8374b9fbf72e2202d4c4d4511a60 /net/switchdev/switchdev.c
parent357f4aae859b5d74554b0ccbb18556f1df4166c3 (diff)
parent2a26d99b251b8625d27aed14e97fc10707a3a81f (diff)
Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net
Mostly simple overlapping changes. For example, David Ahern's adjacency list revamp in 'net-next' conflicted with an adjacency list traversal bug fix in 'net'. Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'net/switchdev/switchdev.c')
-rw-r--r--net/switchdev/switchdev.c9
1 files changed, 9 insertions, 0 deletions
diff --git a/net/switchdev/switchdev.c b/net/switchdev/switchdev.c
index 6f145b592a53..017801f9dbaa 100644
--- a/net/switchdev/switchdev.c
+++ b/net/switchdev/switchdev.c
@@ -768,6 +768,9 @@ int switchdev_port_bridge_getlink(struct sk_buff *skb, u32 pid, u32 seq,
768 u32 mask = BR_LEARNING | BR_LEARNING_SYNC | BR_FLOOD; 768 u32 mask = BR_LEARNING | BR_LEARNING_SYNC | BR_FLOOD;
769 int err; 769 int err;
770 770
771 if (!netif_is_bridge_port(dev))
772 return -EOPNOTSUPP;
773
771 err = switchdev_port_attr_get(dev, &attr); 774 err = switchdev_port_attr_get(dev, &attr);
772 if (err && err != -EOPNOTSUPP) 775 if (err && err != -EOPNOTSUPP)
773 return err; 776 return err;
@@ -923,6 +926,9 @@ int switchdev_port_bridge_setlink(struct net_device *dev,
923 struct nlattr *afspec; 926 struct nlattr *afspec;
924 int err = 0; 927 int err = 0;
925 928
929 if (!netif_is_bridge_port(dev))
930 return -EOPNOTSUPP;
931
926 protinfo = nlmsg_find_attr(nlh, sizeof(struct ifinfomsg), 932 protinfo = nlmsg_find_attr(nlh, sizeof(struct ifinfomsg),
927 IFLA_PROTINFO); 933 IFLA_PROTINFO);
928 if (protinfo) { 934 if (protinfo) {
@@ -956,6 +962,9 @@ int switchdev_port_bridge_dellink(struct net_device *dev,
956{ 962{
957 struct nlattr *afspec; 963 struct nlattr *afspec;
958 964
965 if (!netif_is_bridge_port(dev))
966 return -EOPNOTSUPP;
967
959 afspec = nlmsg_find_attr(nlh, sizeof(struct ifinfomsg), 968 afspec = nlmsg_find_attr(nlh, sizeof(struct ifinfomsg),
960 IFLA_AF_SPEC); 969 IFLA_AF_SPEC);
961 if (afspec) 970 if (afspec)