• Aya Levin's avatar
    net/mlx5e: Fix ICOSQ recovery flow with Striding RQ · e239c6d6
    Aya Levin authored
    In striding RQ mode, the buffers of an RX WQE are first
    prepared and posted to the HW using a UMR WQEs via the ICOSQ.
    We maintain the state of these in-progress WQEs in the RQ
    SW struct.
    
    In the flow of ICOSQ recovery, the corresponding RQ is not
    in error state, hence:
    
    - The buffers of the in-progress WQEs must be released
      and the RQ metadata should reflect it.
    - Existing RX WQEs in the RQ should not be affected.
    
    For this, wrap the dealloc of the in-progress WQEs in
    a function, and use it in the ICOSQ recovery flow
    instead of mlx5e_free_rx_descs().
    
    Fixes: be5323c8 ("net/mlx5e: Report and recover from CQE error on ICOSQ")
    Signed-off-by: default avatarAya Levin <ayal@mellanox.com>
    Reviewed-by: default avatarTariq Toukan <tariqt@mellanox.com>
    Signed-off-by: default avatarSaeed Mahameed <saeedm@mellanox.com>
    e239c6d6
en_main.c 138 KB