Commit 57225e77 authored by Scott Feldman's avatar Scott Feldman Committed by David S. Miller

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: default avatarScott Feldman <sfeldma@gmail.com>
Reported-by: default avatarBrenden Blanco <bblanco@plumgrid.com>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent d0504f4d
...@@ -103,7 +103,9 @@ static void switchdev_port_attr_set_work(struct work_struct *work) ...@@ -103,7 +103,9 @@ static void switchdev_port_attr_set_work(struct work_struct *work)
rtnl_lock(); rtnl_lock();
err = switchdev_port_attr_set(asw->dev, &asw->attr); 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(); rtnl_unlock();
dev_put(asw->dev); dev_put(asw->dev);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment