Package: release.debian.org Severity: normal User: release.debian....@packages.debian.org Usertags: unblock
Please unblock package rdma-core The rdma-core projects follows a similar release process than the linux kernel developers. The point releases only contain backported fixes. I had a look at those commits between our git snapshot from 2021-03-17 and the 33.2 release. [ Reason ] The 33.2 release contains more bugfixes. [ Impact ] Users with InfiniBand hardware might not benefit from the fixes. [ Tests ] The upstream project has test cases, but our package does not run the tests, because they rely on having InfiniBand hardware. [ Risks ] The package is not a leaf package, but only needed for users with RDMA hardware. Since we have a good upstream relationship, the code from upstream is unchanged. In case of a regression, upstream will be affected as well. [ Checklist ] [x] all changes are documented in the d/changelog [x] I reviewed all changes and I approve them [x] attach debdiff against the package in testing unblock rdma-core/33.2-1 -- Benjamin Drung Senior DevOps Engineer and Debian & Ubuntu Developer Compute Platform Operations 1&1 IONOS SE | Greifswalder Str. 207 | 10405 Berlin | Deutschland E-Mail: benjamin.dr...@ionos.com | Web: www.ionos.de Hauptsitz Montabaur, Amtsgericht Montabaur, HRB 24498 Vorstand: Hüseyin Dogan, Dr. Martin Endreß, Claudia Frese, Henning Kettler, Arthur Mai, Matthias Steinberg, Achim Weiß Aufsichtsratsvorsitzender: Markus Kadelke Member of United Internet
diff -Nru rdma-core-33.1+git20210317/buildlib/centos6.spec rdma-core-33.2/buildlib/centos6.spec --- rdma-core-33.1+git20210317/buildlib/centos6.spec 2021-04-06 10:12:51.000000000 +0200 +++ rdma-core-33.2/buildlib/centos6.spec 2021-06-03 09:20:05.000000000 +0200 @@ -1,5 +1,5 @@ Name: rdma-core -Version: 33.1 +Version: 33.2 Release: 1%{?dist} Summary: RDMA core userspace libraries and daemons diff -Nru rdma-core-33.1+git20210317/buildlib/RDMA_EnableCStd.cmake rdma-core-33.2/buildlib/RDMA_EnableCStd.cmake --- rdma-core-33.1+git20210317/buildlib/RDMA_EnableCStd.cmake 2021-04-06 10:12:51.000000000 +0200 +++ rdma-core-33.2/buildlib/RDMA_EnableCStd.cmake 2021-06-03 09:20:05.000000000 +0200 @@ -58,9 +58,15 @@ endif() endfunction() +function(RDMA_Check_C_Compiles TO_VAR CHECK_PROGRAM) + set(CMAKE_REQUIRED_FLAGS "${ARGV2} -Werror") + CHECK_C_SOURCE_COMPILES("${CHECK_PROGRAM}" ${TO_VAR}) + set(${TO_VAR} ${${TO_VAR}} PARENT_SCOPE) +endfunction() + function(RDMA_Check_Aliasing TO_VAR) SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -O2") - CHECK_C_SOURCE_COMPILES(" + RDMA_Check_C_Compiles(HAVE_WORKING_STRICT_ALIASING " struct in6_addr {unsigned int u6_addr32[4];}; struct iphdr {unsigned int daddr;}; union ibv_gid {unsigned char raw[16];}; @@ -80,8 +86,7 @@ map_ipv4_addr_to_ipv6(&a); return set_ah_attr_by_ipv4(&h); }" - HAVE_WORKING_STRICT_ALIASING - FAIL_REGEX "warning") + ) set(${TO_VAR} "${HAVE_WORKING_STRICT_ALIASING}" PARENT_SCOPE) endfunction() @@ -107,20 +112,12 @@ #endif ") - CHECK_C_SOURCE_COMPILES( - "${SSE_CHECK_PROGRAM}" - HAVE_TARGET_SSE - FAIL_REGEX "warning") + RDMA_Check_C_Compiles(HAVE_TARGET_SSE "${SSE_CHECK_PROGRAM}") if(NOT HAVE_TARGET_SSE) # Older compiler, we can work around this by adding -msse instead of # relying on the function attribute. - set(CMAKE_REQUIRED_FLAGS "-msse") - CHECK_C_SOURCE_COMPILES( - "${SSE_CHECK_PROGRAM}" - NEED_MSSE_FLAG - FAIL_REGEX "warning") - set(CMAKE_REQUIRED_FLAGS) + RDMA_Check_C_Compiles(NEED_MSSE_FLAG "${SSE_CHECK_PROGRAM}" "-msse") if(NEED_MSSE_FLAG) set(SSE_FLAGS "-msse" PARENT_SCOPE) diff -Nru rdma-core-33.1+git20210317/CMakeLists.txt rdma-core-33.2/CMakeLists.txt --- rdma-core-33.1+git20210317/CMakeLists.txt 2021-04-06 10:12:51.000000000 +0200 +++ rdma-core-33.2/CMakeLists.txt 2021-06-03 09:20:05.000000000 +0200 @@ -72,7 +72,7 @@ set(PACKAGE_NAME "RDMA") # See Documentation/versioning.md -set(PACKAGE_VERSION "33.1") +set(PACKAGE_VERSION "33.2") # When this is changed the values in these files need changing too: # debian/control # debian/libibverbs1.symbols @@ -233,26 +233,21 @@ # At some point after 4.4 gcc fixed shadow to ignore function vs variable # conflicts -set(SAFE_CMAKE_REQUIRED_FLAGS "${CMAKE_REQUIRED_FLAGS}") - set(CMAKE_REQUIRED_FLAGS "-Wshadow") -CHECK_C_SOURCE_COMPILES(" +RDMA_Check_C_Compiles(HAVE_C_WORKING_SHADOW " #include <unistd.h> int main(int argc,const char *argv[]) { int access = 1; return access; }" - HAVE_C_WORKING_SHADOW - FAIL_REGEX "warning") + "-Wshadow") if (HAVE_C_WORKING_SHADOW) RDMA_AddOptCFlag(CMAKE_C_FLAGS HAVE_C_WORKING_SHADOW "-Wshadow") endif() -set(CMAKE_REQUIRED_FLAGS "${SAFE_CMAKE_REQUIRED_FLAGS}") # At some point around 5.4 gcc fixed missing-field-initializers to ignore this # common idiom we use extensively. Since this is a useful warning for # developers try and leave it on if the compiler supports it. -CHECK_C_SOURCE_COMPILES(" +RDMA_Check_C_Compiles(HAVE_C_WORKING_MISSING_FIELD_INITIALIZERS " struct foo { int a; int b; }; int main(int argc,const char *argv[]) { struct foo tmp = {}; return tmp.a; }" - HAVE_C_WORKING_MISSING_FIELD_INITIALIZERS - FAIL_REGEX "warning") +) if (NOT HAVE_C_WORKING_MISSING_FIELD_INITIALIZERS) RDMA_AddOptCFlag(CMAKE_C_FLAGS HAVE_C_WNO_MISSING_FIELD_INITIALIZERS "-Wno-missing-field-initializers") endif() @@ -268,7 +263,7 @@ RDMA_AddOptCFlag(NO_VAR_TRACKING_FLAGS HAVE_NO_VAR_TRACKING_ASSIGNMENTS "-fno-var-tracking-assignments") -CHECK_C_SOURCE_COMPILES(" +RDMA_Check_C_Compiles(HAVE_FUNC_ATTRIBUTE_IFUNC " #include <unistd.h> void entry(void); @@ -279,18 +274,16 @@ static fn_t resolve_entry(void) {return &do_entry;} int main(int argc,const char *argv[]) { entry(); }" - HAVE_FUNC_ATTRIBUTE_IFUNC - FAIL_REGEX "warning") +) -CHECK_C_SOURCE_COMPILES(" +RDMA_Check_C_Compiles(HAVE_FUNC_ATTRIBUTE_SYMVER " #include <unistd.h> void _sym(void); __attribute__((__symver__(\"sym@TEST_1.1\"))) void _sym(void) {} int main(int argc,const char *argv[]) { _sym(); }" - HAVE_FUNC_ATTRIBUTE_SYMVER - FAIL_REGEX "warning") +) # The code does not do the racy fcntl if the various CLOEXEC's are not # supported so it really doesn't work right if this isn't available. Thus hard @@ -330,19 +323,17 @@ endif() # always_inline is supported -CHECK_C_SOURCE_COMPILES(" +RDMA_Check_C_Compiles(HAVE_FUNC_ATTRIBUTE_ALWAYS_INLINE " int foo(void); inline __attribute__((always_inline)) int foo(void) {return 0;} int main(int argc,const char *argv[]) { return foo(); }" - HAVE_FUNC_ATTRIBUTE_ALWAYS_INLINE - FAIL_REGEX "warning") +) # Linux __u64 is an unsigned long long -CHECK_C_SOURCE_COMPILES(" +RDMA_Check_C_Compiles(HAVE_LONG_LONG_U64 " #include <linux/types.h> int main(int argc,const char *argv[]) { __u64 tmp = 0; unsigned long long *tmp2 = &tmp; return *tmp2; }" - HAVE_LONG_LONG_U64 - FAIL_REGEX "warning") +) if (NOT HAVE_LONG_LONG_U64) # Modern Linux has switched to use ull in all cases, but to avoid disturbing @@ -571,17 +562,13 @@ # Old versions of libnl have a duplicated rtnl_route_put, disbale the warning on those # systems if (NOT NL_KIND EQUAL 0) - set(SAFE_CMAKE_REQUIRED_INCLUDES "${CMAKE_REQUIRED_INCLUDES}") set(SAFE_CMAKE_REQUIRED_FLAGS "${CMAKE_REQUIRED_FLAGS}") set(CMAKE_REQUIRED_INCLUDES "${NL_INCLUDE_DIRS}") - set(CMAKE_REQUIRED_FLAGS "-Wredundant-decls") - CHECK_C_SOURCE_COMPILES(" + RDMA_Check_C_Compiles(HAVE_C_WREDUNDANT_DECLS " #include <netlink/route/route.h> int main(int argc,const char *argv[]) { return 0; }" - HAVE_C_WREDUNDANT_DECLS - FAIL_REGEX "warning") + "-Wredundant-decls") set(CMAKE_REQUIRED_INCLUDES "${SAFE_CMAKE_REQUIRED_INCLUDES}") - set(CMAKE_REQUIRED_FLAGS "${SAFE_CMAKE_REQUIRED_FLAGS}") endif() RDMA_AddOptCFlag(CMAKE_C_FLAGS HAVE_C_WREDUNDANT_DECLS "-Wredundant-decls") diff -Nru rdma-core-33.1+git20210317/debian/changelog rdma-core-33.2/debian/changelog --- rdma-core-33.1+git20210317/debian/changelog 2021-04-12 11:28:57.000000000 +0200 +++ rdma-core-33.2/debian/changelog 2021-06-03 11:19:24.000000000 +0200 @@ -1,3 +1,18 @@ +rdma-core (33.2-1) unstable; urgency=medium + + * New upstream bug-fix release: + - libhns: Fix wrong range of a mask + - verbs: Fix attr_optional() when 'IOCTL_MODE=write' is used + - mlx4: Fix mlx4_read_clock returned errno value + - efa: Fix use of uninitialized query device response + - libhns: Avoid accessing NULL pointer when locking/unlocking CQ + - mlx5: Fix mlx5_read_clock returned errno value + - bnxt_re/lib: Check AH handler validity before use + - iwpmd: Check returned value of parse_iwpm_msg + - libhns: Bugfix for calculation of extended sge + + -- Benjamin Drung <benjamin.dr...@ionos.com> Thu, 03 Jun 2021 11:19:24 +0200 + rdma-core (33.1+git20210317-1) unstable; urgency=medium * New upstream bug-fix snapshot: diff -Nru rdma-core-33.1+git20210317/debian/gbp.conf rdma-core-33.2/debian/gbp.conf --- rdma-core-33.1+git20210317/debian/gbp.conf 1970-01-01 01:00:00.000000000 +0100 +++ rdma-core-33.2/debian/gbp.conf 2021-06-03 11:19:24.000000000 +0200 @@ -0,0 +1,2 @@ +[DEFAULT] +debian-branch = debian/master diff -Nru rdma-core-33.1+git20210317/infiniband-diags/CMakeLists.txt rdma-core-33.2/infiniband-diags/CMakeLists.txt --- rdma-core-33.1+git20210317/infiniband-diags/CMakeLists.txt 2021-04-06 10:12:51.000000000 +0200 +++ rdma-core-33.2/infiniband-diags/CMakeLists.txt 2021-06-03 09:20:05.000000000 +0200 @@ -16,7 +16,7 @@ function(ibdiag_programs) foreach(I ${ARGN}) rdma_sbin_executable(${I} "${I}.c") - target_link_libraries(${I} LINK_PRIVATE ${RT_LIBRARIES} ibumad ibmad ibdiags_tools ibnetdisc) + target_link_libraries(${I} LINK_PRIVATE ${RT_LIBRARIES} ibdiags_tools ibumad ibmad ibnetdisc) endforeach() endfunction() @@ -44,6 +44,6 @@ ) rdma_test_executable(ibsendtrap "ibsendtrap.c") -target_link_libraries(ibsendtrap LINK_PRIVATE ibumad ibmad ibdiags_tools) +target_link_libraries(ibsendtrap LINK_PRIVATE ibdiags_tools ibumad ibmad) rdma_test_executable(mcm_rereg_test "mcm_rereg_test.c") -target_link_libraries(mcm_rereg_test LINK_PRIVATE ibumad ibmad ibdiags_tools) +target_link_libraries(mcm_rereg_test LINK_PRIVATE ibdiags_tools ibumad ibmad) diff -Nru rdma-core-33.1+git20210317/iwpmd/iwarp_pm_server.c rdma-core-33.2/iwpmd/iwarp_pm_server.c --- rdma-core-33.1+git20210317/iwpmd/iwarp_pm_server.c 2021-04-06 10:12:51.000000000 +0200 +++ rdma-core-33.2/iwpmd/iwarp_pm_server.c 2021-06-03 09:20:05.000000000 +0200 @@ -1262,7 +1262,9 @@ ret = -errno; goto process_iwpm_msg_exit; } - parse_iwpm_msg(&recv_buffer, &msg_parms); + ret = parse_iwpm_msg(&recv_buffer, &msg_parms); + if (ret) + goto process_iwpm_msg_exit; switch (msg_parms.mt) { case IWARP_PM_MT_REQ: diff -Nru rdma-core-33.1+git20210317/libibverbs/cmd_ioctl.h rdma-core-33.2/libibverbs/cmd_ioctl.h --- rdma-core-33.1+git20210317/libibverbs/cmd_ioctl.h 2021-04-06 10:12:51.000000000 +0200 +++ rdma-core-33.2/libibverbs/cmd_ioctl.h 2021-06-03 09:20:05.000000000 +0200 @@ -236,6 +236,9 @@ /* Make the attribute optional. */ static inline struct ib_uverbs_attr *attr_optional(struct ib_uverbs_attr *attr) { + if (!attr) + return attr; + attr->flags &= ~UVERBS_ATTR_F_MANDATORY; return attr; } diff -Nru rdma-core-33.1+git20210317/providers/bnxt_re/verbs.c rdma-core-33.2/providers/bnxt_re/verbs.c --- rdma-core-33.1+git20210317/providers/bnxt_re/verbs.c 2021-04-06 10:12:51.000000000 +0200 +++ rdma-core-33.2/providers/bnxt_re/verbs.c 2021-06-03 09:20:05.000000000 +0200 @@ -1193,13 +1193,13 @@ int len; len = bnxt_re_build_send_sqe(qp, wqe, wr, is_inline); - sqe->qkey = htole32(wr->wr.ud.remote_qkey); - sqe->dst_qp = htole32(wr->wr.ud.remote_qpn); if (!wr->wr.ud.ah) { len = -EINVAL; goto bail; } ah = to_bnxt_re_ah(wr->wr.ud.ah); + sqe->qkey = htole32(wr->wr.ud.remote_qkey); + sqe->dst_qp = htole32(wr->wr.ud.remote_qpn); sqe->avid = htole32(ah->avid & 0xFFFFF); bail: return len; diff -Nru rdma-core-33.1+git20210317/providers/efa/verbs.c rdma-core-33.2/providers/efa/verbs.c --- rdma-core-33.1+git20210317/providers/efa/verbs.c 2021-04-06 10:12:51.000000000 +0200 +++ rdma-core-33.2/providers/efa/verbs.c 2021-06-03 09:20:05.000000000 +0200 @@ -96,7 +96,7 @@ int efa_query_device_ctx(struct efa_context *ctx) { - struct efa_query_device_ex_resp resp; + struct efa_query_device_ex_resp resp = {}; struct ibv_device_attr_ex attr; size_t resp_size = sizeof(resp); unsigned int qp_table_sz; diff -Nru rdma-core-33.1+git20210317/providers/hns/hns_roce_u_hw_v2.c rdma-core-33.2/providers/hns/hns_roce_u_hw_v2.c --- rdma-core-33.1+git20210317/providers/hns/hns_roce_u_hw_v2.c 2021-04-06 10:12:51.000000000 +0200 +++ rdma-core-33.2/providers/hns/hns_roce_u_hw_v2.c 2021-06-03 09:20:05.000000000 +0200 @@ -1354,14 +1354,20 @@ struct hns_roce_cq *send_cq = to_hr_cq(qp->send_cq); struct hns_roce_cq *recv_cq = to_hr_cq(qp->recv_cq); - if (send_cq == recv_cq) { + if (send_cq && recv_cq) { + if (send_cq == recv_cq) { + pthread_spin_lock(&send_cq->lock); + } else if (send_cq->cqn < recv_cq->cqn) { + pthread_spin_lock(&send_cq->lock); + pthread_spin_lock(&recv_cq->lock); + } else { + pthread_spin_lock(&recv_cq->lock); + pthread_spin_lock(&send_cq->lock); + } + } else if (send_cq) { pthread_spin_lock(&send_cq->lock); - } else if (send_cq->cqn < recv_cq->cqn) { - pthread_spin_lock(&send_cq->lock); - pthread_spin_lock(&recv_cq->lock); - } else { + } else if (recv_cq) { pthread_spin_lock(&recv_cq->lock); - pthread_spin_lock(&send_cq->lock); } } @@ -1370,13 +1376,19 @@ struct hns_roce_cq *send_cq = to_hr_cq(qp->send_cq); struct hns_roce_cq *recv_cq = to_hr_cq(qp->recv_cq); - if (send_cq == recv_cq) { - pthread_spin_unlock(&send_cq->lock); - } else if (send_cq->cqn < recv_cq->cqn) { - pthread_spin_unlock(&recv_cq->lock); - pthread_spin_unlock(&send_cq->lock); - } else { + if (send_cq && recv_cq) { + if (send_cq == recv_cq) { + pthread_spin_unlock(&send_cq->lock); + } else if (send_cq->cqn < recv_cq->cqn) { + pthread_spin_unlock(&recv_cq->lock); + pthread_spin_unlock(&send_cq->lock); + } else { + pthread_spin_unlock(&send_cq->lock); + pthread_spin_unlock(&recv_cq->lock); + } + } else if (send_cq) { pthread_spin_unlock(&send_cq->lock); + } else if (recv_cq) { pthread_spin_unlock(&recv_cq->lock); } } diff -Nru rdma-core-33.1+git20210317/providers/hns/hns_roce_u_hw_v2.h rdma-core-33.2/providers/hns/hns_roce_u_hw_v2.h --- rdma-core-33.1+git20210317/providers/hns/hns_roce_u_hw_v2.h 2021-04-06 10:12:51.000000000 +0200 +++ rdma-core-33.2/providers/hns/hns_roce_u_hw_v2.h 2021-06-03 09:20:05.000000000 +0200 @@ -133,7 +133,7 @@ #define DB_BYTE_4_CMD_M GENMASK(27, 24) #define DB_PARAM_SRQ_PRODUCER_COUNTER_S 0 -#define DB_PARAM_SRQ_PRODUCER_COUNTER_M GENMASK(16, 0) +#define DB_PARAM_SRQ_PRODUCER_COUNTER_M GENMASK(15, 0) #define DB_PARAM_SL_S 16 #define DB_PARAM_SL_M GENMASK(18, 16) diff -Nru rdma-core-33.1+git20210317/providers/hns/hns_roce_u_verbs.c rdma-core-33.2/providers/hns/hns_roce_u_verbs.c --- rdma-core-33.1+git20210317/providers/hns/hns_roce_u_verbs.c 2021-04-06 10:12:51.000000000 +0200 +++ rdma-core-33.2/providers/hns/hns_roce_u_verbs.c 2021-06-03 09:20:05.000000000 +0200 @@ -711,7 +711,12 @@ } qp->ex_sge.sge_shift = HNS_ROCE_SGE_SHIFT; - qp->ex_sge.sge_cnt = cnt; + + /* If the number of extended sge is not zero, they MUST use the + * space of HNS_HW_PAGE_SIZE at least. + */ + qp->ex_sge.sge_cnt = cnt ? + max(cnt, HNS_HW_PAGE_SIZE / HNS_ROCE_SGE_SIZE) : 0; } static void hns_roce_set_qp_params(struct ibv_pd *pd, diff -Nru rdma-core-33.1+git20210317/providers/mlx4/verbs.c rdma-core-33.2/providers/mlx4/verbs.c --- rdma-core-33.1+git20210317/providers/mlx4/verbs.c 2021-04-06 10:12:51.000000000 +0200 +++ rdma-core-33.2/providers/mlx4/verbs.c 2021-06-03 09:20:05.000000000 +0200 @@ -127,7 +127,7 @@ struct mlx4_context *ctx = to_mctx(context); if (!ctx->hca_core_clock) - return -EOPNOTSUPP; + return EOPNOTSUPP; /* Handle wraparound */ for (i = 0; i < 2; i++) { diff -Nru rdma-core-33.1+git20210317/providers/mlx5/verbs.c rdma-core-33.2/providers/mlx5/verbs.c --- rdma-core-33.1+git20210317/providers/mlx5/verbs.c 2021-04-06 10:12:51.000000000 +0200 +++ rdma-core-33.2/providers/mlx5/verbs.c 2021-06-03 09:20:05.000000000 +0200 @@ -72,7 +72,7 @@ struct mlx5_context *ctx = to_mctx(context); if (!ctx->hca_core_clock) - return -EOPNOTSUPP; + return EOPNOTSUPP; /* Handle wraparound */ for (i = 0; i < 2; i++) { diff -Nru rdma-core-33.1+git20210317/redhat/rdma-core.spec rdma-core-33.2/redhat/rdma-core.spec --- rdma-core-33.1+git20210317/redhat/rdma-core.spec 2021-04-06 10:12:51.000000000 +0200 +++ rdma-core-33.2/redhat/rdma-core.spec 2021-06-03 09:20:05.000000000 +0200 @@ -1,5 +1,5 @@ Name: rdma-core -Version: 33.1 +Version: 33.2 Release: 1%{?dist} Summary: RDMA core userspace libraries and daemons diff -Nru rdma-core-33.1+git20210317/redhat/rdma.modules-setup.sh rdma-core-33.2/redhat/rdma.modules-setup.sh --- rdma-core-33.1+git20210317/redhat/rdma.modules-setup.sh 2021-04-06 10:12:51.000000000 +0200 +++ rdma-core-33.2/redhat/rdma.modules-setup.sh 2021-06-03 09:20:05.000000000 +0200 @@ -21,11 +21,10 @@ inst /usr/lib/modprobe.d/libmlx4.conf inst_multiple lspci setpci awk sleep inst_multiple -o /etc/modprobe.d/mlx4.conf - inst_rules 60-rdma-ndd.rules 60-rdma-persistent-naming.rules 70-persistent-ipoib.rules 75-rdma-description.rules 90-rdma-hw-modules.rules 90-rdma-ulp-modules.rules 90-rdma-umad.rules + inst_rules 60-rdma-persistent-naming.rules 70-persistent-ipoib.rules 75-rdma-description.rules 90-rdma-hw-modules.rules 90-rdma-ulp-modules.rules 90-rdma-umad.rules inst_multiple -o \ $systemdsystemunitdir/rdma-hw.target \ - $systemdsystemunitdir/rdma-load-modules@.service \ - $systemdsystemunitdir/rdma-ndd.service + $systemdsystemunitdir/rdma-load-modules@.service } installkernel() { diff -Nru rdma-core-33.1+git20210317/suse/module-setup.sh rdma-core-33.2/suse/module-setup.sh --- rdma-core-33.1+git20210317/suse/module-setup.sh 2021-04-06 10:12:51.000000000 +0200 +++ rdma-core-33.2/suse/module-setup.sh 2021-06-03 09:20:05.000000000 +0200 @@ -17,7 +17,7 @@ inst /etc/rdma/modules/opa.conf inst /etc/rdma/modules/rdma.conf inst /etc/rdma/modules/roce.conf - inst /usr/lib/mlx4-setup.sh + inst /usr/libexec/mlx4-setup.sh inst_multiple lspci setpci awk sleep inst_rules 60-rdma-persistent-naming.rules 70-persistent-ipoib.rules 75-rdma-description.rules 90-rdma-hw-modules.rules 90-rdma-ulp-modules.rules inst_multiple -o \ diff -Nru rdma-core-33.1+git20210317/suse/rdma-core.spec rdma-core-33.2/suse/rdma-core.spec --- rdma-core-33.1+git20210317/suse/rdma-core.spec 2021-04-06 10:12:51.000000000 +0200 +++ rdma-core-33.2/suse/rdma-core.spec 2021-06-03 09:20:05.000000000 +0200 @@ -23,7 +23,7 @@ %define git_ver %{nil} Name: rdma-core -Version: 33.1 +Version: 33.2 Release: 0 Summary: RDMA core userspace libraries and daemons License: GPL-2.0-only OR BSD-2-Clause @@ -443,7 +443,7 @@ cd .. mkdir -p %{buildroot}/%{_sysconfdir}/rdma -%global dracutlibdir %%{_libexecdir}/dracut/ +%global dracutlibdir %%{_prefix}/lib/dracut/ %global sysmodprobedir %%{_sysconfdir}/modprobe.d mkdir -p %{buildroot}%{_udevrulesdir} @@ -452,14 +452,19 @@ mkdir -p %{buildroot}%{_unitdir} # Port type setup for mlx4 dual port cards +install -D -m0644 redhat/rdma.mlx4.sys.modprobe %{buildroot}%{sysmodprobedir}/50-libmlx4.conf install -D -m0644 redhat/rdma.mlx4.conf %{buildroot}/%{_sysconfdir}/rdma/mlx4.conf -sed 's%/usr/libexec%/usr/lib%g' redhat/rdma.mlx4.sys.modprobe > %{buildroot}%{sysmodprobedir}/50-libmlx4.conf chmod 0644 %{buildroot}%{sysmodprobedir}/50-libmlx4.conf install -D -m0755 redhat/rdma.mlx4-setup.sh %{buildroot}%{_libexecdir}/mlx4-setup.sh # Dracut file for IB support during boot install -D -m0644 suse/module-setup.sh %{buildroot}%{dracutlibdir}/modules.d/05rdma/module-setup.sh +%if "%{_libexecdir}" != "/usr/libexec" +sed 's-/usr/libexec-%{_libexecdir}-g' -i %{buildroot}%{sysmodprobedir}/50-libmlx4.conf +sed 's-/usr/libexec-%{_libexecdir}-g' -i %{buildroot}%{dracutlibdir}/modules.d/05rdma/module-setup.sh +%endif + # ibacm cd build LD_LIBRARY_PATH=./lib bin/ib_acme -D . -O