• Eran Ben Elisha's avatar
    net/mlx5: Fix a bug of releasing wrong chunks on > 4K page size systems · e7f860e2
    Eran Ben Elisha authored
    On systems with page size larger than 4K, a fwp object has few 4K chunks.
    Fix a bug in fwp free flow where the chunk address was dropped and
    fwp->addr was used instead (first chunk address). This caused a wrong
    update of fwp->bitmask which later can cause errors in re-alloc fwp
    chunk flow.
    
    In order to fix this it, re-factor the release flow:
    - Free 4k: Releases a specific 4k chunk inside the fwp, defined by
      starting address.
    - Free fwp: Unconditionally release the whole fwp and its resources.
    Free addr will call free fwp if all chunks were released, in order to do
    code sharing.
    
    In addition, fix npages to count for all released chunks correctly.
    
    Fixes: c6168161 ("net/mlx5: Add support for release all pages event")
    Signed-off-by: default avatarEran Ben Elisha <eranbe@mellanox.com>
    Signed-off-by: default avatarSaeed Mahameed <saeedm@mellanox.com>
    e7f860e2
pagealloc.c 16.9 KB