diff options
Diffstat (limited to 'net/switchdev/switchdev.c')
| -rw-r--r-- | net/switchdev/switchdev.c | 9 | 
1 files changed, 9 insertions, 0 deletions
| diff --git a/net/switchdev/switchdev.c b/net/switchdev/switchdev.c index 02beb35f577f..3b95fe980fa2 100644 --- a/net/switchdev/switchdev.c +++ b/net/switchdev/switchdev.c @@ -771,6 +771,9 @@ int switchdev_port_bridge_getlink(struct sk_buff *skb, u32 pid, u32 seq,  	u32 mask = BR_LEARNING | BR_LEARNING_SYNC | BR_FLOOD;  	int err; +	if (!netif_is_bridge_port(dev)) +		return -EOPNOTSUPP; +  	err = switchdev_port_attr_get(dev, &attr);  	if (err && err != -EOPNOTSUPP)  		return err; @@ -926,6 +929,9 @@ int switchdev_port_bridge_setlink(struct net_device *dev,  	struct nlattr *afspec;  	int err = 0; +	if (!netif_is_bridge_port(dev)) +		return -EOPNOTSUPP; +  	protinfo = nlmsg_find_attr(nlh, sizeof(struct ifinfomsg),  				   IFLA_PROTINFO);  	if (protinfo) { @@ -959,6 +965,9 @@ int switchdev_port_bridge_dellink(struct net_device *dev,  {  	struct nlattr *afspec; +	if (!netif_is_bridge_port(dev)) +		return -EOPNOTSUPP; +  	afspec = nlmsg_find_attr(nlh, sizeof(struct ifinfomsg),  				 IFLA_AF_SPEC);  	if (afspec) | 
