From: Leon Romanovsky <leon@kernel.org>
To: "David S . Miller" <davem@davemloft.net>,
Jakub Kicinski <kuba@kernel.org>
Cc: Leon Romanovsky <leonro@nvidia.com>,
Guangbin Huang <huangguangbin2@huawei.com>,
Ido Schimmel <idosch@nvidia.com>, Jiri Pirko <jiri@nvidia.com>,
linux-kernel@vger.kernel.org,
Michael Guralnik <michaelgur@mellanox.com>,
netdev@vger.kernel.org, Saeed Mahameed <saeedm@nvidia.com>,
Salil Mehta <salil.mehta@huawei.com>,
Tariq Toukan <tariqt@nvidia.com>,
Yisen Zhuang <yisen.zhuang@huawei.com>,
Yufeng Mo <moyufeng@huawei.com>
Subject: [PATCH net-next 0/5] Move devlink_register to be near devlink_reload_enable
Date: Tue, 10 Aug 2021 16:37:30 +0300 [thread overview]
Message-ID: <cover.1628599239.git.leonro@nvidia.com> (raw)
From: Leon Romanovsky <leonro@nvidia.com>
Hi Dave and Jakub,
This series prepares code to remove devlink_reload_enable/_disable API
and in order to do, we move all devlink_register() calls to be right
before devlink_reload_enable().
The best place for such a call should be right before exiting from
the probe().
This is done because devlink_register() opens devlink netlink to the
users and gives them a venue to issue commands before initialization
is finished.
1. Some drivers were aware of such "functionality" and tried to protect
themselves with extra locks, state machines and devlink_reload_enable().
Let's assume that it worked for them, but I'm personally skeptical about
it.
2. Some drivers copied that pattern, but without locks and state
machines. That protected them from reload flows, but not from any _set_
routines.
3. And all other drivers simply didn't understand the implications of early
devlink_register() and can be seen as "broken".
In this series, we focus on items #1 and #2.
Please share your opinion if I should change ALL other drivers to make
sure that devlink_register() is the last command or leave them in an
as-is state.
Thanks
Leon Romanovsky (5):
net: hns3: remove always exist devlink pointer check
net/mlx4: Move devlink_register to be the last initialization command
mlxsw: core: Refactor code to publish devlink ops when device is ready
net/mlx5: Accept devlink user input after driver initialization
complete
netdevsim: Delay user access till probe is finished
.../hisilicon/hns3/hns3pf/hclge_devlink.c | 8 +---
.../hisilicon/hns3/hns3vf/hclgevf_devlink.c | 8 +---
drivers/net/ethernet/mellanox/mlx4/main.c | 38 +++++++++++++------
.../net/ethernet/mellanox/mlx5/core/devlink.c | 10 +----
.../net/ethernet/mellanox/mlx5/core/main.c | 13 ++++++-
.../mellanox/mlx5/core/sf/dev/driver.c | 12 +++++-
drivers/net/ethernet/mellanox/mlxsw/core.c | 27 +++++++------
drivers/net/netdevsim/dev.c | 19 +++++-----
8 files changed, 76 insertions(+), 59 deletions(-)
--
2.31.1
next reply other threads:[~2021-08-10 13:37 UTC|newest]
Thread overview: 14+ messages / expand[flat|nested] mbox.gz Atom feed top
2021-08-10 13:37 Leon Romanovsky [this message]
2021-08-10 13:37 ` [PATCH net-next 1/5] net: hns3: remove always exist devlink pointer check Leon Romanovsky
2021-08-10 13:37 ` [PATCH net-next 2/5] net/mlx4: Move devlink_register to be the last initialization command Leon Romanovsky
2021-08-10 13:37 ` [PATCH net-next 3/5] mlxsw: core: Refactor code to publish devlink ops when device is ready Leon Romanovsky
2021-08-10 13:37 ` [PATCH net-next 4/5] net/mlx5: Accept devlink user input after driver initialization complete Leon Romanovsky
2021-08-10 13:37 ` [PATCH net-next 5/5] netdevsim: Delay user access till probe is finished Leon Romanovsky
2021-08-10 23:53 ` [PATCH net-next 0/5] Move devlink_register to be near devlink_reload_enable Jakub Kicinski
2021-08-11 6:10 ` Leon Romanovsky
2021-08-11 13:27 ` Jakub Kicinski
2021-08-11 14:01 ` Leon Romanovsky
2021-08-11 14:15 ` Leon Romanovsky
2021-08-11 14:18 ` Jakub Kicinski
2021-08-11 14:36 ` Leon Romanovsky
2021-08-12 4:10 ` 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=cover.1628599239.git.leonro@nvidia.com \
--to=leon@kernel.org \
--cc=davem@davemloft.net \
--cc=huangguangbin2@huawei.com \
--cc=idosch@nvidia.com \
--cc=jiri@nvidia.com \
--cc=kuba@kernel.org \
--cc=leonro@nvidia.com \
--cc=linux-kernel@vger.kernel.org \
--cc=michaelgur@mellanox.com \
--cc=moyufeng@huawei.com \
--cc=netdev@vger.kernel.org \
--cc=saeedm@nvidia.com \
--cc=salil.mehta@huawei.com \
--cc=tariqt@nvidia.com \
--cc=yisen.zhuang@huawei.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).