net/mlx5e: Prevent PFC call for non ethernet ports
authorFeras Daoud <ferasda@mellanox.com>
Sun, 4 Jun 2017 14:45:02 +0000 (17:45 +0300)
committerSaeed Mahameed <saeedm@mellanox.com>
Mon, 19 Jun 2017 15:40:20 +0000 (18:40 +0300)
Port flow control supported only for ethernet ports,
therefore, prevent any call if the port type differs from
MLX5_CAP_PORT_TYPE_ETH.

Signed-off-by: Feras Daoud <ferasda@mellanox.com>
Signed-off-by: Saeed Mahameed <saeedm@mellanox.com>
drivers/net/ethernet/mellanox/mlx5/core/en_ethtool.c

index 216752070391ec31959fe2dfdd2e5c6d8c3b408e..7408c298ce2f296525d406387bf85759df9e1465 100644 (file)
@@ -135,6 +135,9 @@ static unsigned long mlx5e_query_pfc_combined(struct mlx5e_priv *priv)
        u8 pfc_en_rx;
        int err;
 
+       if (MLX5_CAP_GEN(mdev, port_type) != MLX5_CAP_PORT_TYPE_ETH)
+               return 0;
+
        err = mlx5_query_port_pfc(mdev, &pfc_en_tx, &pfc_en_rx);
 
        return err ? 0 : pfc_en_tx | pfc_en_rx;
@@ -147,6 +150,9 @@ static bool mlx5e_query_global_pause_combined(struct mlx5e_priv *priv)
        u32 tx_pause;
        int err;
 
+       if (MLX5_CAP_GEN(mdev, port_type) != MLX5_CAP_PORT_TYPE_ETH)
+               return false;
+
        err = mlx5_query_port_pause(mdev, &rx_pause, &tx_pause);
 
        return err ? false : rx_pause | tx_pause;