Commit 68ef53d1 authored by Daniel Verkamp's avatar Daniel Verkamp
Browse files

nvme: make nvme_tracker fit in a single page



Also add a compile-time assert to make sure this doesn't accidentally
break again in the future.

Change-Id: I4d18cfbf21392291e1bdd76eff055429009d28d6
Signed-off-by: default avatarDaniel Verkamp <daniel.verkamp@intel.com>
parent a606a3ed
Loading
Loading
Loading
Loading
+7 −1
Original line number Diff line number Diff line
@@ -102,7 +102,7 @@
 * NVME_MAX_SGL_DESCRIPTORS defines the maximum number of descriptors in one SGL
 *  segment.
 */
#define NVME_MAX_SGL_DESCRIPTORS	(256)
#define NVME_MAX_SGL_DESCRIPTORS	(253)

/*
 * NVME_MAX_IO_ENTRIES is not defined, since it is specified in CC.MQES
@@ -251,6 +251,12 @@ struct nvme_tracker {
		struct spdk_nvme_sgl_descriptor	sgl[NVME_MAX_SGL_DESCRIPTORS];
	} u;
};
/*
 * struct nvme_tracker must fit in 4K (min page size) so that the alignment math in
 * nvme_qpair_construct() works correctly to ensure prp[] does not cross a page boundary.
 */
SPDK_STATIC_ASSERT(sizeof(struct nvme_tracker) <= 4096, "nvme_tracker too large");


struct spdk_nvme_qpair {
	volatile uint32_t		*sq_tdbl;