+ snprintf(inter_buff_mz_name, RTE_MEMZONE_NAMESIZE,
+ "%s_inter_buff_%d", comp_dev->qat_dev->name, i);
+ mz = rte_memzone_lookup(inter_buff_mz_name);
+ if (mz == NULL) {
+ mz = rte_memzone_reserve_aligned(inter_buff_mz_name,
+ full_size,
+ comp_dev->compressdev->data->socket_id,
+ RTE_MEMZONE_IOVA_CONTIG,
+ QAT_64_BYTE_ALIGN);
+ if (mz == NULL) {
+ QAT_LOG(ERR,
+ "Can't allocate intermediate buffers for device %s",
+ comp_dev->qat_dev->name);
+ while (--i >= 0) {
+ snprintf(inter_buff_mz_name,
+ RTE_MEMZONE_NAMESIZE,
+ "%s_inter_buff_%d",
+ comp_dev->qat_dev->name,
+ i);
+ rte_memzone_free(
+ rte_memzone_lookup(
+ inter_buff_mz_name));
+ }
+ rte_memzone_free(memzone);
+ return NULL;
+ }
+ }
+
+ QAT_LOG(DEBUG, "Memzone %s: addr = %p, phys = 0x%"PRIx64
+ ", size required %d, size created %zu",
+ inter_buff_mz_name, mz->addr, mz->iova,
+ full_size, mz->len);
+
+ array_of_pointers->pointer[i] = mz->iova;
+
+ sgl = (struct qat_inter_sgl *) mz->addr;