Commit 3d5fd5a5 authored by paul luse's avatar paul luse Committed by Tomasz Zawadzki
Browse files

lib/idxd: fix bugs with IAA decompression descriptor construction



Masked by how accel_perf was doing decomp verificiation which is
changed in the next few patches and verifies these fixes.

Signed-off-by: default avatarpaul luse <paul.e.luse@intel.com>
Change-Id: Icb03fc169bf8d2f05396addaf1db56d6de1827d1
Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/13038


Community-CI: Mellanox Build Bot
Reviewed-by: default avatarAleksey Marchuk <alexeymar@nvidia.com>
Reviewed-by: default avatarBen Walker <benjamin.walker@intel.com>
Reviewed-by: default avatarTomasz Zawadzki <tomasz.zawadzki@intel.com>
Tested-by: default avatarSPDK CI Jenkins <sys_sgci@intel.com>
parent 8718eba6
Loading
Loading
Loading
Loading
+2 −0
Original line number Diff line number Diff line
@@ -41,6 +41,8 @@ extern "C" {
#define IAA_COMP_FLUSH_OUTPUT		(1 << 1)
#define IAA_COMP_APPEND_EOB		(1 << 2)
#define IAA_COMP_FLAGS			(IAA_COMP_FLUSH_OUTPUT | IAA_COMP_APPEND_EOB)
#define IAA_DECOMP_ENABLE		(1 << 0)
#define IAA_DECOMP_FLAGS		(IAA_DECOMP_ENABLE)

/*
 * IDXD is a family of devices, DSA and IAA.
+2 −5
Original line number Diff line number Diff line
@@ -1205,15 +1205,12 @@ _idxd_submit_decompress_single(struct spdk_idxd_io_channel *chan, void *dst, con
	}

	/* Command specific. */
	desc->opcode = IDXD_OPCODE_COMPRESS;
	desc->opcode = IDXD_OPCODE_DECOMPRESS;
	desc->src1_addr = src_addr;
	desc->dst_addr = dst_addr;
	desc->src1_size = nbytes;
	desc->iaa.max_dst_size = nbytes_dst;
	desc->iaa.src2_size = sizeof(struct iaa_aecs);
	desc->iaa.src2_addr = (uint64_t)chan->idxd->aecs;
	desc->flags |= IAA_FLAG_RD_SRC2_AECS;
	desc->compr_flags = IAA_COMP_FLAGS;
	desc->decompr_flags = IAA_DECOMP_FLAGS;

	_submit_to_hw(chan, op);
	return 0;