• Maxim Mikityanskiy's avatar
    net/mlx5e: Fix repeated XSK usage on one channel · 36d45fb9
    Maxim Mikityanskiy authored
    After an XSK is closed, the relevant structures in the channel are not
    zeroed. If an XSK is opened the second time on the same channel without
    recreating channels, the stray values in the structures will lead to
    incorrect operation of queues, which causes CQE errors, and the new
    socket doesn't work at all.
    
    This patch fixes the issue by explicitly zeroing XSK-related structs in
    the channel on XSK close. Note that those structs are zeroed on channel
    creation, and usually a configuration change (XDP program is set)
    happens on XSK open, which leads to recreating channels, so typical XSK
    usecases don't suffer from this issue. However, if XSKs are opened and
    closed on the same channel without removing the XDP program, this bug
    reproduces.
    
    Fixes: db05815b ("net/mlx5e: Add XSK zero-copy support")
    Signed-off-by: default avatarMaxim Mikityanskiy <maximmi@mellanox.com>
    Signed-off-by: default avatarSaeed Mahameed <saeedm@mellanox.com>
    36d45fb9
setup.c 6.28 KB