lkml.org 
[lkml]   [2020]   [May]   [18]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 4.14 010/114] net/mlx5: Fix forced completion access non initialized command entry
    Date
    From: Moshe Shemesh <moshe@mellanox.com>

    [ Upstream commit f3cb3cebe26ed4c8036adbd9448b372129d3c371 ]

    mlx5_cmd_flush() will trigger forced completions to all valid command
    entries. Triggered by an asynch event such as fast teardown it can
    happen at any stage of the command, including command initialization.
    It will trigger forced completion and that can lead to completion on an
    uninitialized command entry.

    Setting MLX5_CMD_ENT_STATE_PENDING_COMP only after command entry is
    initialized will ensure force completion is treated only if command
    entry is initialized.

    Fixes: 73dd3a4839c1 ("net/mlx5: Avoid using pending command interface slots")
    Signed-off-by: Moshe Shemesh <moshe@mellanox.com>
    Signed-off-by: Eran Ben Elisha <eranbe@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/cmd.c | 2 +-
    1 file changed, 1 insertion(+), 1 deletion(-)

    --- a/drivers/net/ethernet/mellanox/mlx5/core/cmd.c
    +++ b/drivers/net/ethernet/mellanox/mlx5/core/cmd.c
    @@ -831,7 +831,6 @@ static void cmd_work_handler(struct work
    }

    cmd->ent_arr[ent->idx] = ent;
    - set_bit(MLX5_CMD_ENT_STATE_PENDING_COMP, &ent->state);
    lay = get_inst(cmd, ent->idx);
    ent->lay = lay;
    memset(lay, 0, sizeof(*lay));
    @@ -853,6 +852,7 @@ static void cmd_work_handler(struct work

    if (ent->callback)
    schedule_delayed_work(&ent->cb_timeout_work, cb_timeout);
    + set_bit(MLX5_CMD_ENT_STATE_PENDING_COMP, &ent->state);

    /* Skip sending command to fw if internal error */
    if (pci_channel_offline(dev->pdev) ||

    \
     
     \ /
      Last update: 2020-05-18 19:47    [W:4.925 / U:0.080 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site