Intel-Wired-Lan Archive on lore.kernel.org
 help / color / mirror / Atom feed
From: Leon Romanovsky <leon@kernel.org>
To: intel-wired-lan@osuosl.org
Subject: [Intel-wired-lan] [PATCH net-next 4/6] devlink: Clean registration of devlink port
Date: Thu, 18 Nov 2021 09:32:20 +0200	[thread overview]
Message-ID: <YZYBhArHOAbLfOUb@unreal> (raw)
In-Reply-To: <20211117204929.4bd24597@kicinski-fedora-pc1c0hjn.dhcp.thefacebook.com>

On Wed, Nov 17, 2021 at 08:49:29PM -0800, Jakub Kicinski wrote:
> On Wed, 17 Nov 2021 20:26:20 +0200 Leon Romanovsky wrote:
> > From: Leon Romanovsky <leonro@nvidia.com>
> > 
> > devlink_port_register() is in-kernel API and as such can't really fail
> > as long as driver author didn't make a mistake by providing already existing
> > port index. Instead of relying on various error prints from the driver,
> > convert the existence check to be WARN_ON(), so such a mistake will be
> > caught easier.
> > 
> > As an outcome of this conversion, it was made clear that this function
> > should be void and devlink->lock was intended to protect addition to
> > port_list.
> 
> Leave this error checking in please.

Are you referring to error checks in the drivers or the below section
from devlink_port_register()?

       mutex_lock(&devlink->lock);
       if (devlink_port_index_exists(devlink, port_index)) {
               mutex_unlock(&devlink->lock);
               return -EEXIST;
       }

Because if it is latter, any driver (I didn't find any) that will rely
on this -EEXIST field should have some sort of locking in top level.
Otherwise nothing will prevent from doing port unregister right
before "return --EXEEXIST".

So change to WARN_ON() will be much more effective in finding wrong
drivers, because they manage port_index and not devlink.

And because this function can't fail, the drivers have a plenty of dead
code.

Thanks

  reply	other threads:[~2021-11-18  7:32 UTC|newest]

Thread overview: 19+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-11-17 18:26 [Intel-wired-lan] [PATCH net-next 0/6] Devlink cleanups Leon Romanovsky
2021-11-17 18:26 ` [Intel-wired-lan] [PATCH net-next 1/6] devlink: Remove misleading internal_flags from health reporter dump Leon Romanovsky
2021-11-17 18:26 ` [Intel-wired-lan] [PATCH net-next 2/6] devlink: Delete useless checks of holding devlink lock Leon Romanovsky
2021-11-17 18:26 ` [Intel-wired-lan] [PATCH net-next 3/6] devlink: Simplify devlink resources unregister call Leon Romanovsky
2021-11-17 18:26 ` [Intel-wired-lan] [PATCH net-next 4/6] devlink: Clean registration of devlink port Leon Romanovsky
2021-11-18  4:49   ` Jakub Kicinski
2021-11-18  7:32     ` Leon Romanovsky [this message]
2021-11-17 18:26 ` [Intel-wired-lan] [PATCH net-next 5/6] devlink: Reshuffle resource registration logic Leon Romanovsky
2021-11-18  4:49   ` Jakub Kicinski
2021-11-18  7:50     ` Leon Romanovsky
2021-11-19  1:48       ` Jakub Kicinski
2021-11-19 15:38         ` Leon Romanovsky
2021-11-19 16:10           ` Jakub Kicinski
2021-11-21  8:45             ` Leon Romanovsky
2021-11-23  2:27               ` Jakub Kicinski
2021-11-23  8:33                 ` Leon Romanovsky
2021-11-23 23:33                   ` Jakub Kicinski
2021-11-25  9:02                     ` Leon Romanovsky
2021-11-17 18:26 ` [Intel-wired-lan] [PATCH net-next 6/6] devlink: Inline sb related functions Leon Romanovsky

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=YZYBhArHOAbLfOUb@unreal \
    --to=leon@kernel.org \
    --cc=intel-wired-lan@osuosl.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox