[v4,1/8] common/cnxk: use unique name for DPI memzone
Checks
Commit Message
roc_dpi was using vfid as part of name for memzone allocation.
This led to memzone allocation failure in case of multiple
physical functions. vfid is not unique by itself since multiple
physical functions can have the same virtual function indices.
So use complete DBDF as part of memzone name to make it unique.
Fixes: b6e395692b6d ("common/cnxk: add DPI DMA support")
Cc: stable@dpdk.org
Signed-off-by: Radha Mohan Chintakuntla <radhac@marvell.com>
Signed-off-by: Amit Prakash Shukla <amitprakashs@marvell.com>
---
v2:
- Fix for bugs observed in v1.
- Squashed few commits.
v3:
- Resolved review suggestions.
- Code improvement.
v4:
- Resolved checkpatch warnings.
drivers/common/cnxk/roc_dpi.c | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
@@ -81,10 +81,10 @@ roc_dpi_configure(struct roc_dpi *roc_dpi)
return rc;
}
- snprintf(name, sizeof(name), "dpimem%d", roc_dpi->vfid);
+ snprintf(name, sizeof(name), "dpimem%d:%d:%d:%d", pci_dev->addr.domain, pci_dev->addr.bus,
+ pci_dev->addr.devid, pci_dev->addr.function);
buflen = DPI_CMD_QUEUE_SIZE * DPI_CMD_QUEUE_BUFS;
- dpi_mz = plt_memzone_reserve_aligned(name, buflen, 0,
- DPI_CMD_QUEUE_SIZE);
+ dpi_mz = plt_memzone_reserve_aligned(name, buflen, 0, DPI_CMD_QUEUE_SIZE);
if (dpi_mz == NULL) {
plt_err("dpi memzone reserve failed");
rc = -ENOMEM;