net: ethernet: ti: am65-cpsw: set correct devlink flavour for unused ports
authorMatthias Schiffer <matthias.schiffer@ew.tq-group.com>
Tue, 11 Oct 2022 07:50:02 +0000 (09:50 +0200)
committerDavid S. Miller <davem@davemloft.net>
Wed, 12 Oct 2022 08:05:04 +0000 (09:05 +0100)
am65_cpsw_nuss_register_ndevs() skips calling devlink_port_type_eth_set()
for ports without assigned netdev, triggering the following warning when
DEVLINK_PORT_TYPE_WARN_TIMEOUT elapses after 3600s:

    Type was not set for devlink port.
    WARNING: CPU: 0 PID: 129 at net/core/devlink.c:8095 devlink_port_type_warn+0x18/0x30

Fixes: 0680e20af5fb ("net: ethernet: ti: am65-cpsw: Fix devlink port register sequence")
Signed-off-by: Matthias Schiffer <matthias.schiffer@ew.tq-group.com>
Reviewed-by: Andrew Lunn <andrew@lunn.ch>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/ethernet/ti/am65-cpsw-nuss.c

index 3cbe4ec..7f86068 100644 (file)
@@ -2476,7 +2476,10 @@ static int am65_cpsw_nuss_register_devlink(struct am65_cpsw_common *common)
                port = am65_common_get_port(common, i);
                dl_port = &port->devlink_port;
 
-               attrs.flavour = DEVLINK_PORT_FLAVOUR_PHYSICAL;
+               if (port->ndev)
+                       attrs.flavour = DEVLINK_PORT_FLAVOUR_PHYSICAL;
+               else
+                       attrs.flavour = DEVLINK_PORT_FLAVOUR_UNUSED;
                attrs.phys.port_number = port->port_id;
                attrs.switch_id.id_len = sizeof(resource_size_t);
                memcpy(attrs.switch_id.id, common->switch_id, attrs.switch_id.id_len);