]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
devlink/port: Check attributes early and constify
authorParav Pandit <parav@nvidia.com>
Wed, 13 Aug 2025 09:44:17 +0000 (12:44 +0300)
committerJakub Kicinski <kuba@kernel.org>
Fri, 15 Aug 2025 00:35:20 +0000 (17:35 -0700)
Constify the devlink port attributes to indicate they are read only
and does not depend on anything else. Therefore, validate it early
before setting in the devlink port.

Reviewed-by: Jiri Pirko <jiri@nvidia.com>
Signed-off-by: Parav Pandit <parav@nvidia.com>
Link: https://patch.msgid.link/20250813094417.7269-3-parav@nvidia.com
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
include/net/devlink.h
net/devlink/port.c

index b32c9ceeb81d384ec21aacfacccd6f718804dfab..3119d053bc4d5e62e6ba9441c279b9c093c7ab9f 100644 (file)
@@ -1743,7 +1743,7 @@ void devlink_port_type_ib_set(struct devlink_port *devlink_port,
                              struct ib_device *ibdev);
 void devlink_port_type_clear(struct devlink_port *devlink_port);
 void devlink_port_attrs_set(struct devlink_port *devlink_port,
-                           struct devlink_port_attrs *devlink_port_attrs);
+                           const struct devlink_port_attrs *attrs);
 void devlink_port_attrs_pci_pf_set(struct devlink_port *devlink_port, u32 controller,
                                   u16 pf, bool external);
 void devlink_port_attrs_pci_vf_set(struct devlink_port *devlink_port, u32 controller,
index aaca1b23aa5ffda19b0faf93df1629587ee4cebe..93d8a25bb920cf9522e00e2824d6f9fd9670d1bb 100644 (file)
@@ -1356,13 +1356,13 @@ static void __devlink_port_attrs_set(struct devlink_port *devlink_port,
  *     @attrs: devlink port attrs
  */
 void devlink_port_attrs_set(struct devlink_port *devlink_port,
-                           struct devlink_port_attrs *attrs)
+                           const struct devlink_port_attrs *attrs)
 {
        ASSERT_DEVLINK_PORT_NOT_REGISTERED(devlink_port);
+       WARN_ON(attrs->splittable && attrs->split);
 
        devlink_port->attrs = *attrs;
        __devlink_port_attrs_set(devlink_port, attrs->flavour);
-       WARN_ON(attrs->splittable && attrs->split);
 }
 EXPORT_SYMBOL_GPL(devlink_port_attrs_set);