summaryrefslogtreecommitdiff
path: root/net/switchdev
diff options
context:
space:
mode:
authorScott Feldman <sfeldma@gmail.com>2015-06-11 18:19:01 +0300
committerDavid S. Miller <davem@davemloft.net>2015-06-12 02:27:09 +0300
commit57225e7720ac3d7ffcb0086c716753abf6e54e8d (patch)
tree9ebdc1f6899baf7496a8907323a6ae9e55cc390f /net/switchdev
parentd0504f4d8fc4618ee0d6f8124a10da0a007ff347 (diff)
downloadlinux-57225e7720ac3d7ffcb0086c716753abf6e54e8d.tar.xz
switchdev: fix BUG when port driver doesn't support set attr op
Fix a BUG_ON() where CONFIG_NET_SWITCHDEV is set but the driver for a bridged port does not support switchdev_port_attr_set op. Don't BUG_ON() if -EOPNOTSUPP is returned. Also change BUG_ON() to netdev_err since this is a normal error path and does not warrant the use of BUG_ON(), which is reserved for unrecoverable errs. Signed-off-by: Scott Feldman <sfeldma@gmail.com> Reported-by: Brenden Blanco <bblanco@plumgrid.com> Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'net/switchdev')
-rw-r--r--net/switchdev/switchdev.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/net/switchdev/switchdev.c b/net/switchdev/switchdev.c
index b683e89b4caa..658bc3ac8008 100644
--- a/net/switchdev/switchdev.c
+++ b/net/switchdev/switchdev.c
@@ -103,7 +103,9 @@ static void switchdev_port_attr_set_work(struct work_struct *work)
rtnl_lock();
err = switchdev_port_attr_set(asw->dev, &asw->attr);
- BUG_ON(err);
+ if (err && err != -EOPNOTSUPP)
+ netdev_err(asw->dev, "failed (err=%d) to set attribute (id=%d)\n",
+ err, asw->attr.id);
rtnl_unlock();
dev_put(asw->dev);