From f21168e628676516947bcdd633d5e83b1912d2fb Mon Sep 17 00:00:00 2001 From: Anuj Mittal Date: Wed, 10 Aug 2022 10:20:41 +0800 Subject: ipmctl: fix build issues with 5.18+ headers OE-core has updated kernel headers to 5.19 and that is resulting in failures: | /build/cje/workspace/poky/build/tmp/work/corei7-64-poky-linux/ipmctl/03.00.00.0439-r0/git/src/os/linux/lnx_system.c:336:52: error: 'ND_DEVICE_NAMESPACE_BLK' undeclared (first use in this function); did you mean 'ND_DEVICE_NAMESPACE_IO'? | 336 | (nstype == ND_DEVICE_NAMESPACE_BLK)) | | ^~~~~~~~~~~~~~~~~~~~~~~ | | ND_DEVICE_NAMESPACE_IO | compilation terminated due to -Wfatal-errors. For more details: https://github.com/intel/ipmctl/pull/194/ Signed-off-by: Anuj Mittal --- .../227d9cb35658fe104ff6fde62e4a00e6d595df0d.patch | 128 +++++++++++++++++++++ .../recipes-support/ipmctl/ipmctl_03.00.00.0439.bb | 1 + 2 files changed, 129 insertions(+) create mode 100644 dynamic-layers/openembedded-layer/recipes-support/ipmctl/ipmctl/227d9cb35658fe104ff6fde62e4a00e6d595df0d.patch diff --git a/dynamic-layers/openembedded-layer/recipes-support/ipmctl/ipmctl/227d9cb35658fe104ff6fde62e4a00e6d595df0d.patch b/dynamic-layers/openembedded-layer/recipes-support/ipmctl/ipmctl/227d9cb35658fe104ff6fde62e4a00e6d595df0d.patch new file mode 100644 index 00000000..a6e83617 --- /dev/null +++ b/dynamic-layers/openembedded-layer/recipes-support/ipmctl/ipmctl/227d9cb35658fe104ff6fde62e4a00e6d595df0d.patch @@ -0,0 +1,128 @@ +From 227d9cb35658fe104ff6fde62e4a00e6d595df0d Mon Sep 17 00:00:00 2001 +From: Adam Borowski +Date: Sat, 25 Jun 2022 20:35:35 +0200 +Subject: [PATCH] Drop unused queries for block size, fixing build with new + kernels + +Quoting Linux commit f8669f1d6a86a6b17104ceca9340ded280307ac1: + +> Block Aperture Window support was an attempt to layer an error model +> over PMEM for platforms that did not support machine-check-recovery. +> However, it was abandoned before it ever shipped, and only ever existed +> in the ACPI specification. Meanwhile Linux has carried a large pile of +> dead code for non-shipping infrastructure. [...] + +We fetched block sizes but never used that info for anything. Now that +the required defines have been dropped in kernel 5.18, let's purge that +code. + +Signed-off-by: Adam Borowski + +Upstream-Status: Submitted +Signed-off-by: Anuj Mittal +--- + src/os/linux/lnx_system.c | 56 --------------------------------------- + src/os/os.h | 2 -- + src/os/win/win_system.c | 2 -- + 3 files changed, 60 deletions(-) + +diff --git a/src/os/linux/lnx_system.c b/src/os/linux/lnx_system.c +index a2903d8b..d2ad3c1f 100644 +--- a/src/os/linux/lnx_system.c ++++ b/src/os/linux/lnx_system.c +@@ -315,61 +315,6 @@ int os_get_os_type() + return OS_TYPE_LINUX; + } + +-int get_supported_block_sizes(struct nvm_driver_capabilities *p_capabilities) +-{ +- int rc = NVM_SUCCESS; +- int found = 0; +- struct ndctl_ctx *ctx; +- +- p_capabilities->num_block_sizes = 0; +- +- if ((rc = ndctl_new(&ctx)) >= 0) +- { +- struct ndctl_bus *bus; +- ndctl_bus_foreach(ctx, bus) +- { +- struct ndctl_region *region; +- ndctl_region_foreach(bus, region) +- { +- int nstype = ndctl_region_get_nstype(region); +- if (ndctl_region_is_enabled(region) && +- (nstype == ND_DEVICE_NAMESPACE_BLK)) +- { +- struct ndctl_namespace *namespace; +- ndctl_namespace_foreach(region, namespace) +- { +- p_capabilities->num_block_sizes = +- ndctl_namespace_get_num_sector_sizes(namespace); +- +- for (int i = 0; i < p_capabilities->num_block_sizes; i++) +- { +- p_capabilities->block_sizes[i] = +- ndctl_namespace_get_supported_sector_size(namespace, i); +- } +- found = 1; +- break; +- } +- } +- if (found) +- { +- break; +- } +- } +- if (found) +- { +- break; +- } +- } +- ndctl_unref(ctx); +- } +- else +- { +- rc = linux_err_to_nvm_lib_err(rc); +- } +- +- return rc; +-} +- + int os_get_driver_capabilities(struct nvm_driver_capabilities *p_capabilities) + { + p_capabilities->features.get_platform_capabilities = 1; +@@ -399,7 +344,6 @@ int os_get_driver_capabilities(struct nvm_driver_capabilities *p_capabilities) + p_capabilities->features.app_direct_mode = 1; + + p_capabilities->min_namespace_size = ndctl_min_namespace_size(); +- get_supported_block_sizes(p_capabilities); + p_capabilities->namespace_memory_page_allocation_capable = 1; + return 0; + } +diff --git a/src/os/os.h b/src/os/os.h +index 736904de..e5a08bcd 100644 +--- a/src/os/os.h ++++ b/src/os/os.h +@@ -66,8 +66,6 @@ struct driver_feature_flags + + struct nvm_driver_capabilities + { +- unsigned int block_sizes[MAX_NUMBER_OF_BLOCK_SIZES]; // in bytes +- unsigned int num_block_sizes; + unsigned long long min_namespace_size; // in bytes + unsigned int namespace_memory_page_allocation_capable; + struct driver_feature_flags features; +diff --git a/src/os/win/win_system.c b/src/os/win/win_system.c +index 0c18cf0e..4d840333 100644 +--- a/src/os/win/win_system.c ++++ b/src/os/win/win_system.c +@@ -830,8 +830,6 @@ int os_get_driver_capabilities(struct nvm_driver_capabilities *p_capabilities) + memset(p_capabilities, 0, sizeof(struct nvm_driver_capabilities)); + + p_capabilities->min_namespace_size = BYTES_PER_GIB; +- p_capabilities->num_block_sizes = 1; +- p_capabilities->block_sizes[0] = 1; + + p_capabilities->namespace_memory_page_allocation_capable = 0; + p_capabilities->features.get_platform_capabilities = 1; diff --git a/dynamic-layers/openembedded-layer/recipes-support/ipmctl/ipmctl_03.00.00.0439.bb b/dynamic-layers/openembedded-layer/recipes-support/ipmctl/ipmctl_03.00.00.0439.bb index 720acb4d..7bf0cb70 100644 --- a/dynamic-layers/openembedded-layer/recipes-support/ipmctl/ipmctl_03.00.00.0439.bb +++ b/dynamic-layers/openembedded-layer/recipes-support/ipmctl/ipmctl_03.00.00.0439.bb @@ -19,6 +19,7 @@ SRC_URI = "git://github.com/intel/ipmctl.git;protocol=https;branch=development;n git://github.com/tianocore/edk2.git;protocol=https;name=edk2;destsuffix=git/edk2;branch=master \ file://0001-Ignore-STATIC_ASSERTs-and-NULL-define-for-os-and-ut-builds.patch;patchdir=edk2 \ file://0001-CMakeLists-disable-Werror.patch \ + file://227d9cb35658fe104ff6fde62e4a00e6d595df0d.patch \ " SRCREV_ipmctl = "8a73a975e2501c9baa6e4b1fb9101b40a227d084" -- cgit v1.2.3-54-g00ecf