All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH net-next v2] switchdev: fix BUG when port driver doesn't support set attr op
@ 2015-06-11 15:19 sfeldma
  2015-06-11 17:15 ` Brenden Blanco
                   ` (2 more replies)
  0 siblings, 3 replies; 4+ messages in thread
From: sfeldma @ 2015-06-11 15:19 UTC (permalink / raw)
  To: netdev; +Cc: jiri, bblanco

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

^ permalink raw reply related	[flat|nested] 4+ messages in thread

* Re: [PATCH net-next v2] switchdev: fix BUG when port driver doesn't support set attr op
  2015-06-11 15:19 [PATCH net-next v2] switchdev: fix BUG when port driver doesn't support set attr op sfeldma
@ 2015-06-11 17:15 ` Brenden Blanco
  2015-06-12  5:54 ` Jiri Pirko
  2015-06-12 17:17 ` Andy Gospodarek
  2 siblings, 0 replies; 4+ messages in thread
From: Brenden Blanco @ 2015-06-11 17:15 UTC (permalink / raw)
  To: Scott Feldman; +Cc: netdev, jiri

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!

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: [PATCH net-next v2] switchdev: fix BUG when port driver doesn't support set attr op
  2015-06-11 15:19 [PATCH net-next v2] switchdev: fix BUG when port driver doesn't support set attr op sfeldma
  2015-06-11 17:15 ` Brenden Blanco
@ 2015-06-12  5:54 ` Jiri Pirko
  2015-06-12 17:17 ` Andy Gospodarek
  2 siblings, 0 replies; 4+ messages in thread
From: Jiri Pirko @ 2015-06-12  5:54 UTC (permalink / raw)
  To: sfeldma; +Cc: netdev, bblanco

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>

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: [PATCH net-next v2] switchdev: fix BUG when port driver doesn't support set attr op
  2015-06-11 15:19 [PATCH net-next v2] switchdev: fix BUG when port driver doesn't support set attr op sfeldma
  2015-06-11 17:15 ` Brenden Blanco
  2015-06-12  5:54 ` Jiri Pirko
@ 2015-06-12 17:17 ` Andy Gospodarek
  2 siblings, 0 replies; 4+ messages in thread
From: Andy Gospodarek @ 2015-06-12 17:17 UTC (permalink / raw)
  To: sfeldma; +Cc: netdev, jiri, bblanco

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>

^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2015-06-12 17:17 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2015-06-11 15:19 [PATCH net-next v2] switchdev: fix BUG when port driver doesn't support set attr op sfeldma
2015-06-11 17:15 ` Brenden Blanco
2015-06-12  5:54 ` Jiri Pirko
2015-06-12 17:17 ` Andy Gospodarek

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.