rdma: bugfix in the descriptor refill logic. In case of a partial allocation, the remainder modulo 8 must be returned to the pool so that the number of kept buffers is a multiple of 8.

Type: fix
Change-Id: Ifd97b03ea220300e7e6fe81a8ff4a25060fea6c1
Signed-off-by: Mohammed Hawari <mohammed@hawari.fr>
This commit is contained in:
Mohammed Hawari
2020-08-31 17:23:45 +02:00
committed by Damjan Marion
parent dfb30d9d30
commit bfed7c047d

View File

@ -92,7 +92,7 @@ rdma_device_input_refill (vlib_main_t * vm, rdma_device_t * rd,
} }
/* partial allocation, round and return rest */ /* partial allocation, round and return rest */
n_free = n - (n & 7); n_free = n & 7;
n -= n_free; n -= n_free;
if (n_free) if (n_free)
vlib_buffer_free_from_ring (vm, rxq->bufs, (slot + n) & mask, vlib_buffer_free_from_ring (vm, rxq->bufs, (slot + n) & mask,