Compare commits

1 Commits
main ... 1.1

10 changed files with 39 additions and 311 deletions

View File

@@ -0,0 +1,28 @@
From 6ec2c60668edd79d78552c0345e40bab52e3aa33 Mon Sep 17 00:00:00 2001
From: Daniel Wagner <dwagner@suse.de>
Date: Wed, 14 Feb 2024 14:19:07 +0100
Subject: [PATCH] build: disable sysfs test
The test is not running stable in OSC environment. This is a new test
which is running stable in the upstream CI builds. So this is something
downstream and needs some more digging.
Signed-off-by: Daniel Wagner <dwagner@suse.de>
---
test/meson.build | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/test/meson.build b/test/meson.build
index 93e69991d6d7..a76f57973b6f 100644
--- a/test/meson.build
+++ b/test/meson.build
@@ -99,5 +99,5 @@ subdir('ioctl')
subdir('nbft')
if json_c_dep.found()
- subdir('sysfs')
+# subdir('sysfs')
endif
--
2.43.0

View File

@@ -1,39 +0,0 @@
From 81073a178c198a1b7f08964300905cbec595c14e Mon Sep 17 00:00:00 2001
From: Daniel Wagner <wagi@kernel.org>
Date: Thu, 31 Oct 2024 14:54:21 +0100
Subject: [PATCH] linux: fix derive_psk_digest OpenSSL 1.1 version
The reordering of the variables broke derive_psk_digest OpenSSL 1.1
version.
Fixes: 4cc727d19221 ("linux: reorder variable declarations")
Signed-off-by: Daniel Wagner <wagi@kernel.org>
---
src/nvme/linux.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/src/nvme/linux.c b/src/nvme/linux.c
index e74fac20ba18..0d48792431d0 100644
--- a/src/nvme/linux.c
+++ b/src/nvme/linux.c
@@ -881,14 +881,14 @@ int nvme_gen_dhchap_key(char *hostnqn, enum nvme_hmac_alg hmac,
}
static int derive_psk_digest(const char *hostnqn, const char *subsysnqn,
- int version, int hmac,
+ int version, int cipher,
unsigned char *retained, size_t key_len,
char *digest, size_t digest_len)
{
static const char hmac_seed[] = "NVMe-over-Fabrics";
- const EVP_MD *md = select_hmac(hmac, &hmac_len);
_cleanup_hmac_ctx_ HMAC_CTX *hmac_ctx = NULL;
_cleanup_free_ unsigned char *psk_ctx = NULL;
+ const EVP_MD *md;
size_t hmac_len;
size_t len;
--
2.47.0

View File

@@ -1,81 +0,0 @@
From 3ea902f4c8b5a1896bb4087e95c9a90614ef2d9b Mon Sep 17 00:00:00 2001
From: Daniel Wagner <wagi@kernel.org>
Date: Mon, 25 Nov 2024 13:48:37 +0100
Subject: [PATCH] test/mock: pass thru unknown ioctls
On s390, tests which use the mock infrastructure fail, because all
unhandled ioctl are considered as fail. The tests issue kvm related
ioctls (0x7a). No need to fail or intercept them, just pass them thru to
the real ioctl.
Signed-off-by: Daniel Wagner <wagi@kernel.org>
---
test/ioctl/mock.c | 21 ++++++++++++++++-----
1 file changed, 16 insertions(+), 5 deletions(-)
diff --git a/test/ioctl/mock.c b/test/ioctl/mock.c
index 1fb3ec1f9b07..14f6e71bdde0 100644
--- a/test/ioctl/mock.c
+++ b/test/ioctl/mock.c
@@ -7,6 +7,7 @@
#include <stdarg.h>
#include <string.h>
#include <sys/ioctl.h>
+#include <dlfcn.h>
#include "../../src/nvme/ioctl.h"
#include "util.h"
@@ -118,18 +119,20 @@ void end_mock_cmds(void)
})
#ifdef HAVE_GLIBC_IOCTL
+typedef int (*ioctl_func_t)(int, unsigned long, void *);
int ioctl(int fd, unsigned long request, ...)
#else
+typedef int (*ioctl_func_t)(int, int, void *);
int ioctl(int fd, int request, ...)
#endif
{
+ ioctl_func_t real_ioctl = NULL;
struct mock_cmds *mock_cmds;
bool result64;
const struct mock_cmd *mock_cmd;
va_list args;
void *cmd;
- check(fd == mock_fd, "got fd %d, expected %d", fd, mock_fd);
switch (request) {
case NVME_IOCTL_ADMIN_CMD:
mock_cmds = &mock_admin_cmds;
@@ -148,16 +151,24 @@ int ioctl(int fd, int request, ...)
result64 = true;
break;
default:
- fail("unexpected %s %lu", __func__, (unsigned long) request);
+ real_ioctl = dlsym(RTLD_NEXT, "ioctl");
+ if (!real_ioctl)
+ fail("Error: dlsym failed to find original ioctl\n");
}
+
+ va_start(args, request);
+ cmd = va_arg(args, void *);
+ va_end(args);
+
+ if (real_ioctl)
+ return real_ioctl(fd, request, cmd);
+
+ check(fd == mock_fd, "got fd %d, expected %d", fd, mock_fd);
check(mock_cmds->remaining_cmds,
"unexpected %s command", mock_cmds->name);
mock_cmd = mock_cmds->cmds++;
mock_cmds->remaining_cmds--;
- va_start(args, request);
- cmd = va_arg(args, void *);
- va_end(args);
if (result64) {
execute_ioctl((struct nvme_passthru_cmd64 *)cmd, mock_cmd);
} else {
--
2.47.0

View File

@@ -3,8 +3,8 @@
<param name="scm">git</param>
<param name="url">https://github.com/linux-nvme/libnvme.git</param>
<param name="filename">libnvme</param>
<param name="versionformat">@PARENT_TAG@</param>
<param name="revision">v1.11</param>
<param name="versionformat">@PARENT_TAG@+@TAG_OFFSET@.g%h</param>
<param name="revision">bff7dda</param>
<param name="versionrewrite-pattern">v(.*)</param>
<param name="changesgenerate">enable</param>
</service>

View File

@@ -1,6 +1,6 @@
<servicedata>
<service name="tar_scm">
<param name="url">https://github.com/linux-nvme/libnvme.git</param>
<param name="changesrevision">2b3cb1746451f58583408a25857ca897d18cd4ca</param>
<param name="changesrevision">bff7dda7e2a0f883d0b89e23fed725c916de3e61</param>
</service>
</servicedata>

BIN
libnvme-1.11.obscpio (Stored with Git LFS)

Binary file not shown.

BIN
libnvme-1.8+0.gbff7dda.obscpio (Stored with Git LFS) Normal file

Binary file not shown.

View File

@@ -1,182 +1,3 @@
-------------------------------------------------------------------
Mon Nov 25 13:15:00 UTC 2024 - Daniel Wagner <daniel.wagner@suse.com>
- Fix tests on s390
* add 0002-test-mock-pass-thru-unknown-ioctls.patch
-------------------------------------------------------------------
Thu Oct 31 13:06:35 UTC 2024 - Daniel Wagner <daniel.wagner@suse.com>
- Update to version 1.11:
* prefix: Use Request or Response Length in DLEN and DOFF for MI
* types: Add ETPVDS and SSI fields of sanitize status log
* json: do not escape strings when printing the configuration
* tree: do no export tls keys when not provided by user
* types: add struct nvme_id_ctrl_nvm ver and lbamqf member variables
* types: add NVMe 2.1 get log page LIDs
* type: Added enums for ANSAN and RGCNS bit of OAES field
* linux: fixup PSK HMAC type '0' handling
* util: added error code for ENOKEY
* fabrics: fix map error level in __nvmf_add_ctrl
* fabrics: add ctrl connect interface
* fabrics: use hex numbers when generating command line options
* fabrics: rename first argument for argument macros
* linux: handle key import correctly
* linux: export keys to config
* tree: read tls_configured_key and tls_keyring from sysfs
* tree: move dhchap and tls sysfs parser into separate functions
* json: move keystore operations out of the JSON parser
* tree: add getter/setters for TLS PSK
* linux: add import/export function for TLS pre-shared keys
* linux: only return the description of a key
* linux: use ssize_t as return type for nvme_identity_len
* linux: reorder variable declarations
* types: Added enum for SMVES event of PEL log
* libnvme: add lockdown log page support(LID : 0x14)
* libnvme: add EMVS support to sanitize command
* types: Add TP4159 PCIe Infrastructure for Live Migration definitions
* types: add NVME_CTRL_OAES get macro definitions
* types: add NVME_CTRL_OAES_TTHR definition
* types: add NVME_CTRL_FNA definitions to get field values
* types: add NVME_VAL() definition
* tree: fix tls key mem leak (bsc#1231668)
* tree: fix dhchap_ctrl_key mem leak (bsc#1231668)
* tree: fix dhchap_key mem leak (bsc#1231668)
* types: add NVME_CHECK() definition to check nvme register field value
* types: add kv opcodes
* types: added new fields in nvme_nvme_id_ns
* types: Add enum for Completion Condition of Get LBA status command
* ioctl: refactoring set_features
* types: add new fields added in TP4142
* mi: add control primitive command
* linux: Correct error handling for derive_psk_digest (bsc#1228376)
* types: Added new field CSER in enum as per TP4167
- build fix for OpenSSL 1.1
* add 0001-linux-fix-derive_psk_digest-OpenSSL-1.1-version.patch
-------------------------------------------------------------------
Fri Aug 02 08:23:49 UTC 2024 - Daniel Wagner <daniel.wagner@suse.com>
- Update to version 1.10:
* linux: update TLS version 1 PSK derivation (bsc#1228376)
* tree: fix nvme_read_config() to not set errno if return 0
* types: add new fields added in TP4165 (bsc#1231668)
* types: Changed the space into tap space (bsc#1231668)
* tree: handle no address phy slot dirs (bsc#1229193)
* linux: Remove the use of OpenSSL Engine API
* types: Added new controller attribute as per TP4104
* tree: add helper to lookup hostnqn/hostid (bsc#1226216)
* fabrics: extend hostnqn/hostid variable inject interface (bsc#1226216)
* json: filter out pcie transport (bsc#1226216)
* tree: preserve parsing order of a config file (bsc#1226216)
* types: add new field added in TP4099
* types: add new field added in TP4090 (bsc#1231668)
* linux: add nvme_revoke_tls_key (bsc#1226197)
* tree: fix segfault in nvme_free_tree() (bsc#1231668)
* types: add PEL vendor specific and TCG defined events definitions
* mi-mctp: initialize the rc variable in handle_mctp_endpoint()
* linux: avoid potential null pointer dereference
* linux: add nvme_get_ana_log_len_from_id_ctrl()
* libnvme: export nvme_mi_admin_get_ana_log_atomic()
* ioctl: add support for atomic, piecewise ANA log fetch
* ioctl: replace nvme_ana_rsp_hdr in doc comments
* ioctl: respect rae in nvme_get_log_ana()
* ioctl: fix nvme_get_log_ana_groups() pointer type
* types: add new filed added in TP4141a
* mi: Probe quirks on first command submission
* tree: optionally skip namespaces during scanning
* ioctl: update nvme_set_var_size_tags() to properly use reftag
* types: add enum for Protection Information Format
* libnvme: Introduce functions to generate host identifier and host NQN (bsc#1226216)
* fabrics: Unescape URI elements
* tests: Add uriparser tests
* fabrics: Introduce simple URI parser
* linux: default init cleanup variable
* linux: Fix uninitialized variables
* types: add the nvme Cancel command opcode
* log: split log variables from root object
* log: keep log level logic in one place
* mi: restore default ep timeout during admin_passthru
* mi: fix the rc for nvme_mi_scan_ep
* ccan/endian.h: Only define __{BIG,LITTLE}_ENDIAN if undefined.
* Use C99 types for uint32_t
* mi: fix the return error code.
-------------------------------------------------------------------
Fri May 03 13:11:16 UTC 2024 - Daniel Wagner <daniel.wagner@suse.com>
- Update to version 1.9+0.g80c5cf2:
* types: Added Command and Feature Lockdown LID
* types: add ASQ, ACQ and BPMBL controller properties definitions
* types: add controller properties enum documentation
* types: fix CRTO.CRIMT mask value definition
* tree: use strtou32 to read lba_size
* types: Fix PMRWBM register name
* examples: fix mi-mctp build warning errors
* test: add CSTS.ST, CAP.CPS and CAP.NSSS registers
* types: add CAP.CPS and CAP.NSSS definitions
* types: add enum nvme_cap documentation
* types: Add enum nvme_unit/cmbebs/cmbswtp/flbas/cmic documentation
* util: Add string constant for ENVME_CONNECT_IGNORED
* tests: Add sample NBFT table with mpath IPv4+IPv6 discovery
* types: add controller status shutdown type (CSTS.ST) definition
* types: Add enum nvme_csts documentation
* types: Add NVME_CMIC definitions
* types: Add CMBSWTP property definitions
* types: Add NVME_CMBEBS property definitions
* types: Fix boot partition read offset (BPROF) mask value
* tree: fix mem leak in nvme_ns_init() (bsc#1223331)
* fabrics: retry discovery log page when DNR is not set
* ioctl: return EPROTO when an NVMe status occurred
* linux: Allocate aligned payload for nvme_get_telemetry_log
* test: use diff to compare sysfs output (bsc#1226216)
* tree: fix lba_count size calculation
* tree: Add NVM subsystem controller identifier (bsc#1224024)
* test: Add unit test for nvme_id_ns_flbas_to_lbaf_inuse()
* types: Fix NVME_CSTS_SHST_MASK definition
* util: Fixed nvme_id_ns_flbas_to_lbaf_inuse()
* types: Add optional data present filed mask and shift definition
* types: Fix EOM header optional data present fields definition
* libnvme : record the nvme pci adapter physical slot (bsc#1223208)
* sysfs: minimize heap allocations of sysfs paths
* json: Fix uninitialized variables
* libnvme: add missing symbol nvme_scan_tls_keys (bsc#1226197)
* nbft: Whitespace fixes (bsc#1222026)
* tests: Add complex NBFT table from Dell R660 (bsc#1222026)
* tests: Adapt to added NBFT SSNS flags (bsc#1222026)
* nbft: Add SSNS 'discovered' flag (bsc#1222026)
* nbft: Add SSNS 'unavailable' flag (bsc#1222026)
* doc: Document the NBFT API (bsc#1222026)
* ioctl: Move nvme_cmd_dword_fields definitions into header file
* types: Add PEL set feature event layout definitions
* types: Fix enum nvme_pel_rci documentation error
* types: Add boot partition information definitions
* types: Add PEL header additional information definitions
* fabrics: keyring is a long (bsc#1216982)
* config-schema.json.in: tls keys and keyrings are strings (bsc#1216982)
* linux: Add nvme_scan_tls_keys() (bsc#1216982)
* json: dump TLS key data in PSK interchange format (bsc#1216982)
* json: import TLS key from PSK interchange format (bsc#1216982)
* json: export TLS key in PSK interchange format (bsc#1216982)
* tree: read TLS key in nvme_configure_ctrl() (bsc#1216982)
* linux: rework nvme_insert_tls_key_versioned() (bsc#1216982)
* linux: add nvme_import_tls_key() (bsc#1216982)
* linux: add nvme_export_tls_key() (bsc#1216982)
* crc32: Add CRC32 algorithm (bsc#1216982)
* linux: add nvme_update_key() (bsc#1216982)
* linux: add nvme_read_key() (bsc#1216982)
* linux: allow for NULL argument in nvme_lookup_keyring() (bsc#1216982)
* log: Respect DEFAULT_LOGLEVEL on uninitialized logging
* log: Introduce nvme_get_logging_level()
* ioctl: remove incomplete debug logging infrastructure
* ioctl: export nvme_submit_passthru{64} as weak symbol (bsc#1231668)
* log: move nvme_{set|get}_debug to log.c
* fabrics: check the read() return value
* types: Add PEL reporting context port identifier type definitions
* types: Add persistent event log reporting context definitions
- Upstream changed the sysfs test setup, thus sysfs test works in OSB
* remove 0001-build-disable-sysfs-test.patch
-------------------------------------------------------------------
Wed Feb 14 12:04:28 UTC 2024 - Daniel Wagner <daniel.wagner@suse.com>

View File

@@ -1,4 +1,4 @@
name: libnvme
version: 1.11
mtime: 1730365599
commit: 2b3cb1746451f58583408a25857ca897d18cd4ca
version: 1.8+0.gbff7dda
mtime: 1707903643
commit: bff7dda7e2a0f883d0b89e23fed725c916de3e61

View File

@@ -21,14 +21,13 @@
%bcond_without check
Name: libnvme
Version: 1.11
Version: 1.8+0.gbff7dda
Release: 0
Summary: Linux-native nvme device management library
License: LGPL-2.1-or-later
URL: https://github.com/linux-nvme/libnvme/
Source0: libnvme-%{version}.tar.gz
Patch01: 0001-linux-fix-derive_psk_digest-OpenSSL-1.1-version.patch
Patch02: 0002-test-mock-pass-thru-unknown-ioctls.patch
Patch001: 0001-build-disable-sysfs-test.patch
BuildRequires: dbus-1-devel
BuildRequires: gcc
BuildRequires: gcc-c++