• Parav Pandit's avatar
    RDMA/core: Delete RoCE GID in hw when corresponding IP is deleted · be5914c1
    Parav Pandit authored
    Currently a RoCE GID entry is removed from the hardware when all
    references to the GID entry drop to zero. This is a change in behavior
    from before the fixed patch. The GID entry should be removed from the
    hardware when GID entry deletion is requested. This allows the driver
    terminate ongoing traffic through the RoCE GID.
    
    While a GID is deleted from the hardware, GID slot in the software GID
    cache is not freed. GID slot is freed once all references of such GID are
    dropped. This continue to ensure that such GID slot of hardware is not
    allocated to new GID entry allocation request. It is allocated once all
    references to GID entry drop.
    
    This approach allows drivers to put a tombestone of some kind on the HW
    GID index to block the traffic.
    
    Fixes: b150c386 ("IB/core: Introduce GID entry reference counts")
    Signed-off-by: default avatarParav Pandit <parav@mellanox.com>
    Reviewed-by: default avatarMark Bloch <markb@mellanox.com>
    Signed-off-by: default avatarLeon Romanovsky <leonro@mellanox.com>
    Signed-off-by: default avatarJason Gunthorpe <jgg@mellanox.com>
    be5914c1
cache.c 37.9 KB