diff options
author | Scott Feldman <sfeldma@gmail.com> | 2015-06-11 08:19:01 -0700 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2015-06-11 16:27:09 -0700 |
commit | 57225e7720ac3d7ffcb0086c716753abf6e54e8d (patch) | |
tree | 9ebdc1f6899baf7496a8907323a6ae9e55cc390f | |
parent | d0504f4d8fc4618ee0d6f8124a10da0a007ff347 (diff) | |
download | op-kernel-dev-57225e7720ac3d7ffcb0086c716753abf6e54e8d.zip op-kernel-dev-57225e7720ac3d7ffcb0086c716753abf6e54e8d.tar.gz |
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>
-rw-r--r-- | net/switchdev/switchdev.c | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/net/switchdev/switchdev.c b/net/switchdev/switchdev.c index b683e89..658bc3a 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); |