anitazha / rpms / ndctl

Forked from rpms/ndctl 2 years ago
Clone

Blame 0134-libcxl-return-the-partition-alignment-field-in-bytes.patch

Jeff Moyer 2c91dc
From ac0066a6095e9ed0910fc560277ec693d3b507fa Mon Sep 17 00:00:00 2001
Jeff Moyer 2c91dc
From: Alison Schofield <alison.schofield@intel.com>
Jeff Moyer 2c91dc
Date: Tue, 22 Feb 2022 11:56:05 -0800
Jeff Moyer 2c91dc
Subject: [PATCH 134/217] libcxl: return the partition alignment field in bytes
Jeff Moyer 2c91dc
Jeff Moyer 2c91dc
Per the CXL specification, the partition alignment field reports
Jeff Moyer 2c91dc
the alignment value in multiples of 256MB. In the libcxl API, values
Jeff Moyer 2c91dc
for all capacity fields are defined to return bytes.
Jeff Moyer 2c91dc
Jeff Moyer 2c91dc
Update the partition alignment accessor to return bytes so that it
Jeff Moyer 2c91dc
is in sync with other capacity related fields.
Jeff Moyer 2c91dc
Jeff Moyer 2c91dc
Since this is early in the development cycle, the expectation is that
Jeff Moyer 2c91dc
no third party consumers of this library have come to depend on the
Jeff Moyer 2c91dc
encoded capacity field. If that is not the case, the original format
Jeff Moyer 2c91dc
can be restored, and a new _bytes version introduced.
Jeff Moyer 2c91dc
Jeff Moyer 2c91dc
Link: https://lore.kernel.org/r/6b937b09b61ddf95e069fd7acfda0c5bbb845be8.1645558189.git.alison.schofield@intel.com
Jeff Moyer 2c91dc
Reviewed-by: Dan Williams <dan.j.williams@intel.com>
Jeff Moyer 2c91dc
Signed-off-by: Alison Schofield <alison.schofield@intel.com>
Jeff Moyer 2c91dc
Signed-off-by: Vishal Verma <vishal.l.verma@intel.com>
Jeff Moyer 2c91dc
---
Jeff Moyer 2c91dc
 cxl/lib/libcxl.c | 13 +++++--------
Jeff Moyer 2c91dc
 1 file changed, 5 insertions(+), 8 deletions(-)
Jeff Moyer 2c91dc
Jeff Moyer 2c91dc
diff --git a/cxl/lib/libcxl.c b/cxl/lib/libcxl.c
Jeff Moyer 2c91dc
index 9413384..c05c13c 100644
Jeff Moyer 2c91dc
--- a/cxl/lib/libcxl.c
Jeff Moyer 2c91dc
+++ b/cxl/lib/libcxl.c
Jeff Moyer 2c91dc
@@ -2308,15 +2308,12 @@ CXL_EXPORT int cxl_cmd_identify_get_fw_rev(struct cxl_cmd *cmd, char *fw_rev,
Jeff Moyer 2c91dc
 CXL_EXPORT unsigned long long cxl_cmd_identify_get_partition_align(
Jeff Moyer 2c91dc
 		struct cxl_cmd *cmd)
Jeff Moyer 2c91dc
 {
Jeff Moyer 2c91dc
-	struct cxl_cmd_identify *id =
Jeff Moyer 2c91dc
-			(struct cxl_cmd_identify *)cmd->send_cmd->out.payload;
Jeff Moyer 2c91dc
-
Jeff Moyer 2c91dc
-	if (cmd->send_cmd->id != CXL_MEM_COMMAND_ID_IDENTIFY)
Jeff Moyer 2c91dc
-		return -EINVAL;
Jeff Moyer 2c91dc
-	if (cmd->status < 0)
Jeff Moyer 2c91dc
-		return cmd->status;
Jeff Moyer 2c91dc
+	struct cxl_cmd_identify *c;
Jeff Moyer 2c91dc
 
Jeff Moyer 2c91dc
-	return le64_to_cpu(id->partition_align);
Jeff Moyer 2c91dc
+	c = cmd_to_identify(cmd);
Jeff Moyer 2c91dc
+	if (!c)
Jeff Moyer 2c91dc
+		return ULLONG_MAX;
Jeff Moyer 2c91dc
+	return cxl_capacity_to_bytes(c->partition_align);
Jeff Moyer 2c91dc
 }
Jeff Moyer 2c91dc
 
Jeff Moyer 2c91dc
 CXL_EXPORT unsigned int cxl_cmd_identify_get_label_size(struct cxl_cmd *cmd)
Jeff Moyer 2c91dc
-- 
Jeff Moyer 2c91dc
2.27.0
Jeff Moyer 2c91dc