From 007fb1d3cbc1b7d48ee8ebb7873a729a33094726 Mon Sep 17 00:00:00 2001 From: Alexey Marchuk Date: Mon, 16 May 2022 14:13:03 +0300 Subject: [PATCH] nvme: Fix keyed/unkeyd SGL nvme cmd dump Signed-off-by: Alexey Marchuk Change-Id: I0a08518b5c30455a17158aa440715515d0c066fc Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/12133 Community-CI: Broadcom CI Community-CI: Mellanox Build Bot Tested-by: SPDK CI Jenkins Reviewed-by: Jim Harris Reviewed-by: Ben Walker --- lib/nvme/nvme_qpair.c | 4 ++-- test/unit/lib/nvme/nvme_qpair.c/nvme_qpair_ut.c | 11 ++++++----- 2 files changed, 8 insertions(+), 7 deletions(-) diff --git a/lib/nvme/nvme_qpair.c b/lib/nvme/nvme_qpair.c index c126399f5..4ad25c534 100644 --- a/lib/nvme/nvme_qpair.c +++ b/lib/nvme/nvme_qpair.c @@ -191,11 +191,11 @@ nvme_get_sgl(char *buf, size_t size, struct spdk_nvme_cmd *cmd) nvme_get_string(sgl_subtype, sgl->generic.subtype), sgl->address); assert(c >= 0 && (size_t)c < size); - if (sgl->generic.type == SPDK_NVME_SGL_TYPE_KEYED_DATA_BLOCK) { + if (sgl->generic.type == SPDK_NVME_SGL_TYPE_DATA_BLOCK) { nvme_get_sgl_unkeyed(buf + c, size - c, cmd); } - if (sgl->generic.type == SPDK_NVME_SGL_TYPE_DATA_BLOCK) { + if (sgl->generic.type == SPDK_NVME_SGL_TYPE_KEYED_DATA_BLOCK) { nvme_get_sgl_keyed(buf + c, size - c, cmd); } } diff --git a/test/unit/lib/nvme/nvme_qpair.c/nvme_qpair_ut.c b/test/unit/lib/nvme/nvme_qpair.c/nvme_qpair_ut.c index 6fb41146d..6de03cd01 100644 --- a/test/unit/lib/nvme/nvme_qpair.c/nvme_qpair_ut.c +++ b/test/unit/lib/nvme/nvme_qpair.c/nvme_qpair_ut.c @@ -3,6 +3,7 @@ * * Copyright (c) Intel Corporation. * All rights reserved. + * Copyright (c) 2022 NVIDIA CORPORATION & AFFILIATES. All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions @@ -741,21 +742,21 @@ test_nvme_get_sgl_print_info(void) cmd.dptr.sgl1.generic.type = SPDK_NVME_SGL_TYPE_DATA_BLOCK; cmd.dptr.sgl1.generic.subtype = 0; cmd.dptr.sgl1.address = 0xdeadbeef; - cmd.dptr.sgl1.keyed.length = 0x1000; - cmd.dptr.sgl1.keyed.key = 0xababccdd; + cmd.dptr.sgl1.unkeyed.length = 0x1000; nvme_get_sgl(buf, NVME_CMD_DPTR_STR_SIZE, &cmd); - CU_ASSERT(!strncmp(buf, "SGL DATA BLOCK ADDRESS 0xdeadbeef len:0x1000 key:0xababccdd", + CU_ASSERT(!strncmp(buf, "SGL DATA BLOCK ADDRESS 0xdeadbeef len:0x1000", NVME_CMD_DPTR_STR_SIZE)); memset(&cmd.dptr.sgl1, 0, sizeof(cmd.dptr.sgl1)); cmd.dptr.sgl1.generic.type = SPDK_NVME_SGL_TYPE_KEYED_DATA_BLOCK; cmd.dptr.sgl1.generic.subtype = 0; cmd.dptr.sgl1.address = 0xdeadbeef; - cmd.dptr.sgl1.unkeyed.length = 0x1000; + cmd.dptr.sgl1.keyed.length = 0x1000; + cmd.dptr.sgl1.keyed.key = 0xababccdd; nvme_get_sgl(buf, NVME_CMD_DPTR_STR_SIZE, &cmd); - CU_ASSERT(!strncmp(buf, "SGL RESERVED ADDRESS 0xdeadbeef len:0x1000", + CU_ASSERT(!strncmp(buf, "SGL RESERVED ADDRESS 0xdeadbeef len:0x1000 key:0xababccdd", NVME_CMD_DPTR_STR_SIZE)); }