nfp: only report pause frame configuration for physical device
authorYu Xiao <yu.xiao@corigine.com>
Fri, 27 May 2022 18:24:24 +0000 (20:24 +0200)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Tue, 14 Jun 2022 16:36:11 +0000 (18:36 +0200)
[ Upstream commit 0649e4d63420ebc8cbebef3e9d39e12ffc5eb9fa ]

Only report pause frame configuration for physical device. Logical
port of both PCI PF and PCI VF do not support it.

Fixes: 9fdc5d85a8fe ("nfp: update ethtool reporting of pauseframe control")
Signed-off-by: Yu Xiao <yu.xiao@corigine.com>
Signed-off-by: Simon Horman <simon.horman@corigine.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Signed-off-by: Sasha Levin <sashal@kernel.org>
drivers/net/ethernet/netronome/nfp/nfp_net_ethtool.c

index be1a358baadb92a174dfde5dd7efd75ee66b0609..8b614b0201e749a4c23f241bbb3a9a98f3a3ca02 100644 (file)
@@ -286,8 +286,6 @@ nfp_net_get_link_ksettings(struct net_device *netdev,
 
        /* Init to unknowns */
        ethtool_link_ksettings_add_link_mode(cmd, supported, FIBRE);
-       ethtool_link_ksettings_add_link_mode(cmd, supported, Pause);
-       ethtool_link_ksettings_add_link_mode(cmd, advertising, Pause);
        cmd->base.port = PORT_OTHER;
        cmd->base.speed = SPEED_UNKNOWN;
        cmd->base.duplex = DUPLEX_UNKNOWN;
@@ -295,6 +293,8 @@ nfp_net_get_link_ksettings(struct net_device *netdev,
        port = nfp_port_from_netdev(netdev);
        eth_port = nfp_port_get_eth_port(port);
        if (eth_port) {
+               ethtool_link_ksettings_add_link_mode(cmd, supported, Pause);
+               ethtool_link_ksettings_add_link_mode(cmd, advertising, Pause);
                cmd->base.autoneg = eth_port->aneg != NFP_ANEG_DISABLED ?
                        AUTONEG_ENABLE : AUTONEG_DISABLE;
                nfp_net_set_fec_link_mode(eth_port, cmd);