Message ID | 1434035941-13665-1-git-send-email-sfeldma@gmail.com |
---|---|
State | Accepted, archived |
Delegated to: | David Miller |
Headers | show |
On Thu, Jun 11, 2015 at 8:19 AM, <sfeldma@gmail.com> wrote: > From: Scott Feldman <sfeldma@gmail.com> > > 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> > --- > net/switchdev/switchdev.c | 4 +++- > 1 file changed, 3 insertions(+), 1 deletion(-) > > diff --git a/net/switchdev/switchdev.c b/net/switchdev/switchdev.c > index e008057..ecd1b3f 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); > -- > 1.7.10.4 > I just tried this patch against the original test case, and this one works well for me. Thanks! -- To unsubscribe from this list: send the line "unsubscribe netdev" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
Thu, Jun 11, 2015 at 05:19:01PM CEST, sfeldma@gmail.com wrote: >From: Scott Feldman <sfeldma@gmail.com> > >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> Acked-by: Jiri Pirko <jiri@resnulli.us> -- To unsubscribe from this list: send the line "unsubscribe netdev" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
On Thu, Jun 11, 2015 at 08:19:01AM -0700, sfeldma@gmail.com wrote: > From: Scott Feldman <sfeldma@gmail.com> > > 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> This is less aggressive -- good call. Acked-by: Andy Gospodarek <gospo@cumulusnetworks.com> -- To unsubscribe from this list: send the line "unsubscribe netdev" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
diff --git a/net/switchdev/switchdev.c b/net/switchdev/switchdev.c index e008057..ecd1b3f 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);