1
0
Fork 0

Adding patch from upstream to fix FTBFS on big endian, thanks to Benjamin Drung <bdrung@debian.org> (Closes: #1023826).

Signed-off-by: Daniel Baumann <daniel@debian.org>
This commit is contained in:
Daniel Baumann 2025-02-16 10:06:09 +01:00
parent fb8cacd398
commit 1b74ef3b47
Signed by: daniel
GPG key ID: FBB4F0E80A80222F
2 changed files with 45 additions and 0 deletions

1
debian/patches/series vendored Normal file
View file

@ -0,0 +1 @@
upstream/0001-ftbfs-big-endian.patch

View file

@ -0,0 +1,44 @@
Author: Jeremy Kerr <jk@codeconstruct.com.au>
Description: mi: endian fixes
We have a couple of endian issues in the mi code: one where we're not
converting cdw0 for MI commands, and one where we're using the wrong
byte length for an existing conversion. There is also an error in the
test suite, where we should be converting the nsze field of a
nvme_id_ns.
.
This change fixes those, so that the test suite passes on a BE platform
(ppc64 in my case).
diff -Naurp libnvme.orig/src/nvme/mi.c libnvme/src/nvme/mi.c
--- libnvme.orig/src/nvme/mi.c
+++ libnvme/src/nvme/mi.c
@@ -139,7 +139,7 @@ int nvme_mi_scan_ep(nvme_mi_ep_t ep, boo
struct nvme_mi_ctrl *ctrl;
__u16 id;
- id = le32_to_cpu(list.identifier[i]);
+ id = le16_to_cpu(list.identifier[i]);
if (!id)
continue;
@@ -985,7 +985,7 @@ static int nvme_mi_read_data(nvme_mi_ep_
req_hdr.hdr.nmp = (NVME_MI_ROR_REQ << 7) |
(NVME_MI_MT_MI << 3); /* we always use command slot 0 */
req_hdr.opcode = nvme_mi_mi_opcode_mi_data_read;
- req_hdr.cdw0 = cdw0;
+ req_hdr.cdw0 = cpu_to_le32(cdw0);
memset(&req, 0, sizeof(req));
req.hdr = &req_hdr.hdr;
diff -Naurp libnvme.orig/test/mi.c libnvme/test/mi.c
--- libnvme.orig/test/mi.c
+++ libnvme/test/mi.c
@@ -1287,7 +1287,7 @@ static void test_admin_ns_mgmt_create(st
assert(!rc);
assert(ns == 0x01020304);
- nsid.nsze = 42;
+ nsid.nsze = cpu_to_le64(42);
rc = nvme_mi_admin_ns_mgmt_create(ctrl, &nsid, 0, &ns);
assert(rc);
}