diff mbox series

[RFC,net-next,06/10] devlink: don't require setting features before registration

Message ID 20221217011953.152487-7-kuba@kernel.org (mailing list archive)
State RFC
Delegated to: Netdev Maintainers
Headers show
Series devlink: remove the wait-for-references on unregister | expand

Checks

Context Check Description
netdev/tree_selection success Clearly marked for net-next
netdev/apply fail Patch does not apply to net-next

Commit Message

Jakub Kicinski Dec. 17, 2022, 1:19 a.m. UTC
Requiring devlink_set_features() to be run before devlink is
registered is overzealous. devlink_set_features() itself is
a leftover from old workarounds which were trying to prevent
initiating reload before probe was complete.

Signed-off-by: Jakub Kicinski <kuba@kernel.org>
---
 net/devlink/core.c | 2 --
 1 file changed, 2 deletions(-)

Comments

Jiri Pirko Jan. 2, 2023, 3:25 p.m. UTC | #1
Sat, Dec 17, 2022 at 02:19:49AM CET, kuba@kernel.org wrote:
>Requiring devlink_set_features() to be run before devlink is
>registered is overzealous. devlink_set_features() itself is
>a leftover from old workarounds which were trying to prevent
>initiating reload before probe was complete.

Wouldn't it be better to remove this entirely? I don't think it is
needed anymore.


>
>Signed-off-by: Jakub Kicinski <kuba@kernel.org>
>---
> net/devlink/core.c | 2 --
> 1 file changed, 2 deletions(-)
>
>diff --git a/net/devlink/core.c b/net/devlink/core.c
>index 413b92534ad6..f30fc167c8ad 100644
>--- a/net/devlink/core.c
>+++ b/net/devlink/core.c
>@@ -131,8 +131,6 @@ struct devlink *devlinks_xa_find_get(struct net *net, unsigned long *indexp)
>  */
> void devlink_set_features(struct devlink *devlink, u64 features)
> {
>-	ASSERT_DEVLINK_NOT_REGISTERED(devlink);
>-
> 	WARN_ON(features & DEVLINK_F_RELOAD &&
> 		!devlink_reload_supported(devlink->ops));
> 	devlink->features = features;
>-- 
>2.38.1
>
Jakub Kicinski Jan. 2, 2023, 11:24 p.m. UTC | #2
On Mon, 2 Jan 2023 16:25:18 +0100 Jiri Pirko wrote:
> Sat, Dec 17, 2022 at 02:19:49AM CET, kuba@kernel.org wrote:
> >Requiring devlink_set_features() to be run before devlink is
> >registered is overzealous. devlink_set_features() itself is
> >a leftover from old workarounds which were trying to prevent
> >initiating reload before probe was complete.  
> 
> Wouldn't it be better to remove this entirely? I don't think it is
> needed anymore.

I think you're right. Since users don't have access to the instance
before it's registered - this flag can have no impact.
Jakub Kicinski Jan. 2, 2023, 11:32 p.m. UTC | #3
On Mon, 2 Jan 2023 15:24:47 -0800 Jakub Kicinski wrote:
> On Mon, 2 Jan 2023 16:25:18 +0100 Jiri Pirko wrote:
> > Sat, Dec 17, 2022 at 02:19:49AM CET, kuba@kernel.org wrote:  
> > >Requiring devlink_set_features() to be run before devlink is
> > >registered is overzealous. devlink_set_features() itself is
> > >a leftover from old workarounds which were trying to prevent
> > >initiating reload before probe was complete.    
> > 
> > Wouldn't it be better to remove this entirely? I don't think it is
> > needed anymore.  
> 
> I think you're right. Since users don't have access to the instance
> before it's registered - this flag can have no impact.

Let's leave this for a separate follow up, mlx5 needs a bit more work.
It sets the feature conditionally.
Jiri Pirko Jan. 3, 2023, 9:46 a.m. UTC | #4
Tue, Jan 03, 2023 at 12:32:54AM CET, kuba@kernel.org wrote:
>On Mon, 2 Jan 2023 15:24:47 -0800 Jakub Kicinski wrote:
>> On Mon, 2 Jan 2023 16:25:18 +0100 Jiri Pirko wrote:
>> > Sat, Dec 17, 2022 at 02:19:49AM CET, kuba@kernel.org wrote:  
>> > >Requiring devlink_set_features() to be run before devlink is
>> > >registered is overzealous. devlink_set_features() itself is
>> > >a leftover from old workarounds which were trying to prevent
>> > >initiating reload before probe was complete.    
>> > 
>> > Wouldn't it be better to remove this entirely? I don't think it is
>> > needed anymore.  
>> 
>> I think you're right. Since users don't have access to the instance
>> before it's registered - this flag can have no impact.
>
>Let's leave this for a separate follow up, mlx5 needs a bit more work.
>It sets the feature conditionally.

Okay, let me take care of that.
diff mbox series

Patch

diff --git a/net/devlink/core.c b/net/devlink/core.c
index 413b92534ad6..f30fc167c8ad 100644
--- a/net/devlink/core.c
+++ b/net/devlink/core.c
@@ -131,8 +131,6 @@  struct devlink *devlinks_xa_find_get(struct net *net, unsigned long *indexp)
  */
 void devlink_set_features(struct devlink *devlink, u64 features)
 {
-	ASSERT_DEVLINK_NOT_REGISTERED(devlink);
-
 	WARN_ON(features & DEVLINK_F_RELOAD &&
 		!devlink_reload_supported(devlink->ops));
 	devlink->features = features;