diff mbox series

net: devlink: Remove overzealous WARN_ON with snapshots

Message ID 20200816192638.2291010-1-andrew@lunn.ch
State Accepted
Delegated to: David Miller
Headers show
Series net: devlink: Remove overzealous WARN_ON with snapshots | expand

Commit Message

Andrew Lunn Aug. 16, 2020, 7:26 p.m. UTC
It is possible to trigger this WARN_ON from user space by triggering a
devlink snapshot with an ID which already exists. We don't need both
-EEXISTS being reported and spamming the kernel log.

Signed-off-by: Andrew Lunn <andrew@lunn.ch>
---
 net/core/devlink.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

Comments

Andrew Lunn Aug. 16, 2020, 7:39 p.m. UTC | #1
On Sun, Aug 16, 2020 at 09:26:38PM +0200, Andrew Lunn wrote:
> It is possible to trigger this WARN_ON from user space by triggering a
> devlink snapshot with an ID which already exists. We don't need both
> -EEXISTS being reported and spamming the kernel log.

Upps. Forgot the net-next in the subject line.

Jiri, should we backport this? I can rebase onto net?

      Andrew
Chris Healy Aug. 16, 2020, 9:21 p.m. UTC | #2
With this patch applied, I no longer experience the kernel warning messages.

Tested-by: Chris Healy <cphealy@gmail.com>

On Sun, Aug 16, 2020 at 12:27 PM Andrew Lunn <andrew@lunn.ch> wrote:
>
> It is possible to trigger this WARN_ON from user space by triggering a
> devlink snapshot with an ID which already exists. We don't need both
> -EEXISTS being reported and spamming the kernel log.
>
> Signed-off-by: Andrew Lunn <andrew@lunn.ch>
> ---
>  net/core/devlink.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/net/core/devlink.c b/net/core/devlink.c
> index e674f0f46dc2..e5feb87beca7 100644
> --- a/net/core/devlink.c
> +++ b/net/core/devlink.c
> @@ -4063,7 +4063,7 @@ static int __devlink_snapshot_id_insert(struct devlink *devlink, u32 id)
>  {
>         lockdep_assert_held(&devlink->lock);
>
> -       if (WARN_ON(xa_load(&devlink->snapshot_ids, id)))
> +       if (xa_load(&devlink->snapshot_ids, id))
>                 return -EEXIST;
>
>         return xa_err(xa_store(&devlink->snapshot_ids, id, xa_mk_value(0),
> --
> 2.28.0
>
David Miller Aug. 17, 2020, 4:07 a.m. UTC | #3
From: Andrew Lunn <andrew@lunn.ch>
Date: Sun, 16 Aug 2020 21:26:38 +0200

> It is possible to trigger this WARN_ON from user space by triggering a
> devlink snapshot with an ID which already exists. We don't need both
> -EEXISTS being reported and spamming the kernel log.
> 
> Signed-off-by: Andrew Lunn <andrew@lunn.ch>

Applied, thanks Andrew.
diff mbox series

Patch

diff --git a/net/core/devlink.c b/net/core/devlink.c
index e674f0f46dc2..e5feb87beca7 100644
--- a/net/core/devlink.c
+++ b/net/core/devlink.c
@@ -4063,7 +4063,7 @@  static int __devlink_snapshot_id_insert(struct devlink *devlink, u32 id)
 {
 	lockdep_assert_held(&devlink->lock);
 
-	if (WARN_ON(xa_load(&devlink->snapshot_ids, id)))
+	if (xa_load(&devlink->snapshot_ids, id))
 		return -EEXIST;
 
 	return xa_err(xa_store(&devlink->snapshot_ids, id, xa_mk_value(0),