Dear Jedrzej,

Thank you for your patch.


Am 07.07.25 um 10:58 schrieb Jedrzej Jagielski:
Currently when adding devlink port it is prohibited to let
a driver name an interface on its own. In some scenarios
it would not be preferable to provide such limitation,
eg some compatibility purposes.

Re-flowing for 72 characters per line would save one line.

Add flag skip_phys_port_name_get to devlink_port_attrs struct
which indicates if devlink should not alter name of interface.

Suggested-by: Jiri Pirko <j...@resnulli.us>
Signed-off-by: Jedrzej Jagielski <jedrzej.jagiel...@intel.com>
---
v2: add skip_phys_port_name_get flag to skip changing if name
---
  include/net/devlink.h | 7 ++++++-
  net/devlink/port.c    | 3 +++
  2 files changed, 9 insertions(+), 1 deletion(-)

diff --git a/include/net/devlink.h b/include/net/devlink.h
index 0091f23a40f7..414ae25de897 100644
--- a/include/net/devlink.h
+++ b/include/net/devlink.h
@@ -78,6 +78,7 @@ struct devlink_port_pci_sf_attrs {
   * @flavour: flavour of the port
   * @split: indicates if this is split port
   * @splittable: indicates if the port can be split.
+ * @skip_phys_port_name_get: if set devlink doesn't alter interface name
   * @lanes: maximum number of lanes the port supports. 0 value is not passed 
to netlink.
   * @switch_id: if the port is part of switch, this is buffer with ID, 
otherwise this is NULL
   * @phys: physical port attributes
@@ -87,7 +88,11 @@ struct devlink_port_pci_sf_attrs {
   */
  struct devlink_port_attrs {
        u8 split:1,
-          splittable:1;
+          splittable:1,
+          skip_phys_port_name_get:1; /* This is for compatibility only,
+                                      * newly added driver/port instance
+                                      * should never set this.
+                                      */
        u32 lanes;
        enum devlink_port_flavour flavour;
        struct netdev_phys_item_id switch_id;
diff --git a/net/devlink/port.c b/net/devlink/port.c
index 939081a0e615..bf52c8a57992 100644
--- a/net/devlink/port.c
+++ b/net/devlink/port.c
@@ -1522,6 +1522,9 @@ static int __devlink_port_phys_port_name_get(struct 
devlink_port *devlink_port,
        if (!devlink_port->attrs_set)
                return -EOPNOTSUPP;
+ if (devlink_port->attrs.skip_phys_port_name_get)
+               return 0;
+
        switch (attrs->flavour) {
        case DEVLINK_PORT_FLAVOUR_PHYSICAL:
                if (devlink_port->linecard)

Reviewed-by: Paul Menzel <pmen...@molgen.mpg.de>


Kind regards,

Paul

Reply via email to