lkml.org 
[lkml]   [2019]   [Nov]   [8]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 4.19 63/79] net/mlx5e: Fix ethtool self test: link speed
    Date
    From: Aya Levin <ayal@mellanox.com>

    [ Upstream commit 534e7366f41b0c689b01af4375aefcd1462adedf ]

    Ethtool self test contains a test for link speed. This test reads the
    PTYS register and determines whether the current speed is valid or not.
    Change current implementation to use the function mlx5e_port_linkspeed()
    that does the same check and fails when speed is invalid. This code
    redundancy lead to a bug when mlx5e_port_linkspeed() was updated with
    expended speeds and the self test was not.

    Fixes: 2c81bfd5ae56 ("net/mlx5e: Move port speed code from en_ethtool.c to en/port.c")
    Signed-off-by: Aya Levin <ayal@mellanox.com>
    Reviewed-by: Moshe Shemesh <moshe@mellanox.com>
    Signed-off-by: Saeed Mahameed <saeedm@mellanox.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    ---
    drivers/net/ethernet/mellanox/mlx5/core/en_selftest.c | 15 +++------------
    1 file changed, 3 insertions(+), 12 deletions(-)

    --- a/drivers/net/ethernet/mellanox/mlx5/core/en_selftest.c
    +++ b/drivers/net/ethernet/mellanox/mlx5/core/en_selftest.c
    @@ -35,6 +35,7 @@
    #include <linux/udp.h>
    #include <net/udp.h>
    #include "en.h"
    +#include "en/port.h"

    enum {
    MLX5E_ST_LINK_STATE,
    @@ -80,22 +81,12 @@ static int mlx5e_test_link_state(struct

    static int mlx5e_test_link_speed(struct mlx5e_priv *priv)
    {
    - u32 out[MLX5_ST_SZ_DW(ptys_reg)];
    - u32 eth_proto_oper;
    - int i;
    + u32 speed;

    if (!netif_carrier_ok(priv->netdev))
    return 1;

    - if (mlx5_query_port_ptys(priv->mdev, out, sizeof(out), MLX5_PTYS_EN, 1))
    - return 1;
    -
    - eth_proto_oper = MLX5_GET(ptys_reg, out, eth_proto_oper);
    - for (i = 0; i < MLX5E_LINK_MODES_NUMBER; i++) {
    - if (eth_proto_oper & MLX5E_PROT_MASK(i))
    - return 0;
    - }
    - return 1;
    + return mlx5e_port_linkspeed(priv->mdev, &speed);
    }

    struct mlx5ehdr {

    \
     
     \ /
      Last update: 2019-11-08 20:17    [W:2.383 / U:0.004 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site