Hi Nicolas, On 10/30/24 19:56, Nicolas Chautru wrote:
Allowing ring memory allocation whose end address is aligned with 64 MB. Previous logic was off by one.Fixes: 060e76729302 ("baseband/acc100: add queue configuration") Cc: [email protected] Signed-off-by: Nicolas Chautru <[email protected]> --- drivers/baseband/acc/acc_common.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/baseband/acc/acc_common.h b/drivers/baseband/acc/acc_common.h index 4c60b7896b..55b43bab4e 100644 --- a/drivers/baseband/acc/acc_common.h +++ b/drivers/baseband/acc/acc_common.h @@ -800,7 +800,7 @@ alloc_sw_rings_min_mem(struct rte_bbdev *dev, struct acc_device *d, /* Check if the end of the sw ring memory block is before the * start of next 64MB aligned mem address */ - if (sw_ring_iova_end_addr < next_64mb_align_addr_iova) { + if (sw_ring_iova_end_addr <= next_64mb_align_addr_iova) { d->sw_rings_iova = sw_rings_base_iova; d->sw_rings = sw_rings_base; d->sw_rings_base = sw_rings_base;
IMHO, the proper fix would be to fix sw_ring_iova_end_addr to really represent the last address of the block and not the start address ofthe next one: sw_ring_iova_end_addr = sw_rings_base_iova + dev_sw_ring_size - 1; Regards, Maxime

