Skip to content
  • Eran Ben Elisha's avatar
    net/mlx5: Fix a race when moving command interface to events mode · d43b7007
    Eran Ben Elisha authored
    After driver creates (via FW command) an EQ for commands, the driver will
    be informed on new commands completion by EQE. However, due to a race in
    driver's internal command mode metadata update, some new commands will
    still be miss-handled by driver as if we are in polling mode. Such commands
    can get two non forced completion, leading to already freed command entry
    access.
    
    CREATE_EQ command, that maps EQ to the command queue must be posted to the
    command queue while it is empty and no other command should be posted.
    
    Add SW mechanism that once the CREATE_EQ command is about to be executed,
    all other commands will return error without being sent to the FW. Allow
    sending other commands only after successfully changing the driver's
    internal command mode metadata.
    We can safely return error to all other commands while creating the command
    EQ, as all other commands might be sent from the user/application during
    driver load. Application can rerun them later after driver's load was
    finished.
    
    Fixes: e126ba97
    
     ("mlx5: Add driver for Mellanox Connect-IB adapters")
    Signed-off-by: default avatarEran Ben Elisha <eranbe@mellanox.com>
    Signed-off-by: default avatarMoshe Shemesh <moshe@mellanox.com>
    Signed-off-by: default avatarSaeed Mahameed <saeedm@mellanox.com>
    d43b7007