From d3c9538e832cbb11de3562dff384f31b05254776 Mon Sep 17 00:00:00 2001 From: Daniel Baumann Date: Thu, 10 Nov 2022 23:04:44 +0100 Subject: Adding patch from upstream to fix FTBFS on big endian, thanks to Benjamin Drung (Closes: #1023826). Signed-off-by: Daniel Baumann --- debian/patches/series | 1 + .../patches/upstream/0001-ftbfs-big-endian.patch | 44 ++++++++++++++++++++++ 2 files changed, 45 insertions(+) create mode 100644 debian/patches/series create mode 100644 debian/patches/upstream/0001-ftbfs-big-endian.patch diff --git a/debian/patches/series b/debian/patches/series new file mode 100644 index 0000000..f4c448e --- /dev/null +++ b/debian/patches/series @@ -0,0 +1 @@ +upstream/0001-ftbfs-big-endian.patch diff --git a/debian/patches/upstream/0001-ftbfs-big-endian.patch b/debian/patches/upstream/0001-ftbfs-big-endian.patch new file mode 100644 index 0000000..f92cc8f --- /dev/null +++ b/debian/patches/upstream/0001-ftbfs-big-endian.patch @@ -0,0 +1,44 @@ +Author: Jeremy Kerr +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); + } -- cgit v1.2.3