Commit 46854e4c authored by Shuhei Matsumoto's avatar Shuhei Matsumoto Committed by Tomasz Zawadzki
Browse files

dif: Factor out DIF PI format check into a helper function



This improves readability slightly.

Signed-off-by: default avatarShuhei Matsumoto <smatsumoto@nvidia.com>
Change-Id: I744e9e0f2df43789d019f416d1ff9e6d66620346
Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/24202


Tested-by: default avatarSPDK CI Jenkins <sys_sgci@intel.com>
Reviewed-by: default avatarJim Harris <jim.harris@samsung.com>
Community-CI: Mellanox Build Bot
Reviewed-by: default avatarAleksey Marchuk <alexeymar@nvidia.com>
parent 96168f45
Loading
Loading
Loading
Loading
+14 −3
Original line number Diff line number Diff line
@@ -486,6 +486,19 @@ _dif_ignore(struct spdk_dif *dif, const struct spdk_dif_ctx *ctx)
	return false;
}

static bool
_dif_pi_format_is_valid(enum spdk_dif_pi_format dif_pi_format)
{
	switch (dif_pi_format) {
	case SPDK_DIF_PI_FORMAT_16:
	case SPDK_DIF_PI_FORMAT_32:
	case SPDK_DIF_PI_FORMAT_64:
		return true;
	default:
		return false;
	}
}

int
spdk_dif_ctx_init(struct spdk_dif_ctx *ctx, uint32_t block_size, uint32_t md_size,
		  bool md_interleave, bool dif_loc, enum spdk_dif_type dif_type, uint32_t dif_flags,
@@ -496,9 +509,7 @@ spdk_dif_ctx_init(struct spdk_dif_ctx *ctx, uint32_t block_size, uint32_t md_siz
	enum spdk_dif_pi_format dif_pi_format = SPDK_DIF_PI_FORMAT_16;

	if (opts != NULL) {
		if (opts->dif_pi_format != SPDK_DIF_PI_FORMAT_16 &&
		    opts->dif_pi_format != SPDK_DIF_PI_FORMAT_32 &&
		    opts->dif_pi_format != SPDK_DIF_PI_FORMAT_64) {
		if (!_dif_pi_format_is_valid(opts->dif_pi_format)) {
			SPDK_ERRLOG("No valid DIF PI format provided.\n");
			return -EINVAL;
		}
+10 −1
Original line number Diff line number Diff line
@@ -4084,6 +4084,15 @@ dif_generate_and_verify_unmap_test(void)
	_iov_free_buf(&iov);
}

static void
dif_pi_format_check_test(void)
{
	CU_ASSERT(_dif_pi_format_is_valid(SPDK_DIF_PI_FORMAT_16) == true);
	CU_ASSERT(_dif_pi_format_is_valid(SPDK_DIF_PI_FORMAT_32) == true);
	CU_ASSERT(_dif_pi_format_is_valid(SPDK_DIF_PI_FORMAT_64) == true);
	CU_ASSERT(_dif_pi_format_is_valid(SPDK_DIF_PI_FORMAT_64 + 1) == false);
}

int
main(int argc, char **argv)
{
@@ -4173,7 +4182,7 @@ main(int argc, char **argv)
	CU_ADD_TEST(suite, dix_sec_512_md_8_prchk_7_multi_iovs_complex_splits_remap_pi_16_test);
	CU_ADD_TEST(suite, dix_sec_4096_md_128_prchk_7_multi_iovs_complex_splits_remap_test);
	CU_ADD_TEST(suite, dif_generate_and_verify_unmap_test);

	CU_ADD_TEST(suite, dif_pi_format_check_test);

	num_failures = spdk_ut_run_tests(argc, argv, NULL);