Skip to content

Commit 91f6242

Browse files
CKI Backport Botmichich
authored andcommitted
devlink: let driver opt out of automatic phys_port_name generation
JIRA: https://issues.redhat.com/browse/RHEL-109607 commit c5ec7f4 Author: Jedrzej Jagielski <[email protected]> Date: Fri Jul 4 13:17:47 2025 +0200 devlink: let driver opt out of automatic phys_port_name generation Currently when adding devlink port, phys_port_name is automatically generated within devlink port initialization flow. As a result adding devlink port support to driver may result in forced changes of interface names, which breaks already existing network configs. This is an expected behavior but in some scenarios it would not be preferable to provide such limitation for legacy driver not being able to keep 'pre-devlink' interface name. Add flag no_phys_port_name to devlink_port_attrs struct which indicates if devlink should not alter name of interface. Suggested-by: Jiri Pirko <[email protected]> Link: https://lore.kernel.org/all/nbwrfnjhvrcduqzjl4a2jafnvvud6qsbxlvxaxilnryglf4j7r@btuqrimnfuly/ Signed-off-by: Jedrzej Jagielski <[email protected]> Signed-off-by: Tony Nguyen <[email protected]> Signed-off-by: CKI Backport Bot <[email protected]> Signed-off-by: Michal Schmidt <[email protected]>
1 parent 5dbb153 commit 91f6242

File tree

2 files changed

+6
-2
lines changed

2 files changed

+6
-2
lines changed

include/net/devlink.h

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -80,6 +80,9 @@ struct devlink_port_pci_sf_attrs {
8080
* @flavour: flavour of the port
8181
* @split: indicates if this is split port
8282
* @splittable: indicates if the port can be split.
83+
* @no_phys_port_name: skip automatic phys_port_name generation; for
84+
* compatibility only, newly added driver/port instance
85+
* should never set this.
8386
* @lanes: maximum number of lanes the port supports. 0 value is not passed to netlink.
8487
* @switch_id: if the port is part of switch, this is buffer with ID, otherwise this is NULL
8588
* @phys: physical port attributes
@@ -89,7 +92,8 @@ struct devlink_port_pci_sf_attrs {
8992
*/
9093
struct devlink_port_attrs {
9194
u8 split:1,
92-
splittable:1;
95+
splittable:1,
96+
no_phys_port_name:1;
9397
u32 lanes;
9498
enum devlink_port_flavour flavour;
9599
struct netdev_phys_item_id switch_id;

net/devlink/port.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1519,7 +1519,7 @@ static int __devlink_port_phys_port_name_get(struct devlink_port *devlink_port,
15191519
struct devlink_port_attrs *attrs = &devlink_port->attrs;
15201520
int n = 0;
15211521

1522-
if (!devlink_port->attrs_set)
1522+
if (!devlink_port->attrs_set || devlink_port->attrs.no_phys_port_name)
15231523
return -EOPNOTSUPP;
15241524

15251525
switch (attrs->flavour) {

0 commit comments

Comments
 (0)