On Thu, Jun 11, 2015 at 8:19 AM,  <sfel...@gmail.com> wrote:
> From: Scott Feldman <sfel...@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 <sfel...@gmail.com>
> Reported-by: Brenden Blanco <bbla...@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 majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to