From: Simon Horman <simon.horman@corigine.com>
To: Jiri Pirko <jiri@resnulli.us>
Cc: netdev@vger.kernel.org, davem@davemloft.net, kuba@kernel.org,
pabeni@redhat.com, edumazet@google.com, tariqt@nvidia.com,
saeedm@nvidia.com, jacob.e.keller@intel.com, gal@nvidia.com,
kim.phillips@amd.com, moshe@nvidia.com
Subject: Re: [patch net-next 6/7] devlink: allow to call devl_param_driverinit_value_get() without holding instance lock
Date: Thu, 9 Feb 2023 17:46:29 +0100 [thread overview]
Message-ID: <Y+UjZVPU87ISpRbn@corigine.com> (raw)
In-Reply-To: <20230209154308.2984602-7-jiri@resnulli.us>
On Thu, Feb 09, 2023 at 04:43:07PM +0100, Jiri Pirko wrote:
> From: Jiri Pirko <jiri@nvidia.com>
>
> If the driver maintains following basic sane behavior, the
> devl_param_driverinit_value_get() function could be called without
> holding instance lock:
>
> 1) Driver ensures a call to devl_param_driverinit_value_get() cannot
> race with registering/unregistering the parameter with
> the same parameter ID.
> 2) Driver ensures a call to devl_param_driverinit_value_get() cannot
> race with devl_param_driverinit_value_set() call with
> the same parameter ID.
> 3) Driver ensures a call to devl_param_driverinit_value_get() cannot
> race with reload operation.
>
> By the nature of params usage, these requirements should be
> trivially achievable. If the driver for some off reason
> is not able to comply, it has to take the devlink->lock while
> calling devl_param_driverinit_value_get().
>
> Remove the lock assertion and add comment describing
> the locking requirements.
>
> This fixes a splat in mlx5 driver introduced by the commit
> referenced in the "Fixes" tag.
>
> Lore: https://lore.kernel.org/netdev/719de4f0-76ac-e8b9-38a9-167ae239efc7@amd.com/
> Reported-by: Kim Phillips <kim.phillips@amd.com>
> Fixes: 075935f0ae0f ("devlink: protect devlink param list by instance lock")
> Signed-off-by: Jiri Pirko <jiri@nvidia.com>
Reviewed-by: Simon Horman <simon.horman@corigine.com>
next prev parent reply other threads:[~2023-02-09 16:46 UTC|newest]
Thread overview: 24+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-02-09 15:43 [patch net-next 0/7] devlink: params cleanups and devl_param_driverinit_value_get() fix Jiri Pirko
2023-02-09 15:43 ` [patch net-next 1/7] devlink: don't use strcpy() to copy param value Jiri Pirko
2023-02-09 16:39 ` Simon Horman
2023-02-09 15:43 ` [patch net-next 2/7] devlink: make sure driver does not read updated driverinit param before reload Jiri Pirko
2023-02-09 16:42 ` Simon Horman
2023-02-09 15:43 ` [patch net-next 3/7] devlink: fix the name of value arg of devl_param_driverinit_value_get() Jiri Pirko
2023-02-09 16:43 ` Simon Horman
2023-02-09 15:43 ` [patch net-next 4/7] devlink: use xa_for_each_start() helper in devlink_nl_cmd_port_get_dump_one() Jiri Pirko
2023-02-09 16:43 ` Simon Horman
2023-02-09 15:43 ` [patch net-next 5/7] devlink: convert param list to xarray Jiri Pirko
2023-02-09 16:45 ` Simon Horman
2023-02-10 7:53 ` Jiri Pirko
2023-02-10 8:51 ` Simon Horman
2023-02-09 15:43 ` [patch net-next 6/7] devlink: allow to call devl_param_driverinit_value_get() without holding instance lock Jiri Pirko
2023-02-09 16:46 ` Simon Horman [this message]
2023-02-09 15:43 ` [patch net-next 7/7] devlink: add forgotten devlink instance lock assertion to devl_param_driverinit_value_set() Jiri Pirko
2023-02-09 16:47 ` Simon Horman
2023-02-09 21:05 ` [patch net-next 0/7] devlink: params cleanups and devl_param_driverinit_value_get() fix Kim Phillips
2023-02-09 21:31 ` Jakub Kicinski
2023-02-09 22:37 ` Kim Phillips
2023-02-10 0:16 ` Jakub Kicinski
2023-02-10 7:55 ` Jiri Pirko
2023-02-10 4:53 ` Jakub Kicinski
2023-02-10 7:56 ` Jiri Pirko
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=Y+UjZVPU87ISpRbn@corigine.com \
--to=simon.horman@corigine.com \
--cc=davem@davemloft.net \
--cc=edumazet@google.com \
--cc=gal@nvidia.com \
--cc=jacob.e.keller@intel.com \
--cc=jiri@resnulli.us \
--cc=kim.phillips@amd.com \
--cc=kuba@kernel.org \
--cc=moshe@nvidia.com \
--cc=netdev@vger.kernel.org \
--cc=pabeni@redhat.com \
--cc=saeedm@nvidia.com \
--cc=tariqt@nvidia.com \
/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 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.