diff --git a/_service b/_service
index b5057c2..d3ad0e7 100644
--- a/_service
+++ b/_service
@@ -8,7 +8,7 @@
@PARENT_TAG@.@TAG_OFFSET@.%h
v(.*)
\1
- ba66d565a860c2bed39f6a60fb53285b871522c9
+ 11b5e50ab96f71f0d7d86f42d82635f4013f552a
suse/rdma-core.spec
diff --git a/cxgb3-nes-fix-declaration-of-free_context.patch b/cxgb3-nes-fix-declaration-of-free_context.patch
new file mode 100644
index 0000000..c01e21c
--- /dev/null
+++ b/cxgb3-nes-fix-declaration-of-free_context.patch
@@ -0,0 +1,72 @@
+commit 3eb8e71b19b62fa13cfc01db34e33914b1949ea8
+Author: Nicolas Morey-Chaisemartin
+Date: Fri Jul 24 10:44:05 2020 +0200
+
+ cxgb3,nes: fix declaration of free_context
+
+ free_context got moved to another struct by
+ a4c102dd6b05 (verbs: Move free_context from verbs_device_ops to verbs_context_ops)
+
+ Backport the change to older providers we maintain
+
+ Signed-off-by: Nicolas Morey-Chaisemartin
+
+diff --git providers/cxgb3/iwch.c providers/cxgb3/iwch.c
+index 6f3c8b9f1439..2bfca4f58f21 100644
+--- providers/cxgb3/iwch.c
++++ providers/cxgb3/iwch.c
+@@ -75,6 +75,8 @@ static const struct verbs_match_ent hca_table[] = {
+ {},
+ };
+
++static void iwch_free_context(struct ibv_context *ibctx);
++
+ static const struct verbs_context_ops iwch_ctx_common_ops = {
+ .query_device = iwch_query_device,
+ .query_port = iwch_query_port,
+@@ -98,6 +100,7 @@ static const struct verbs_context_ops iwch_ctx_common_ops = {
+ .detach_mcast = iwch_detach_mcast,
+ .post_srq_recv = iwch_post_srq_recv,
+ .req_notify_cq = iwch_arm_cq,
++ .free_context = iwch_free_context,
+ };
+
+ static const struct verbs_context_ops iwch_ctx_t3a_ops = {
+@@ -264,6 +267,5 @@ static const struct verbs_device_ops iwch_dev_ops = {
+ .alloc_device = iwch_device_alloc,
+ .uninit_device = iwch_uninit_device,
+ .alloc_context = iwch_alloc_context,
+- .free_context = iwch_free_context,
+ };
+ PROVIDER_DRIVER(cxgb3, iwch_dev_ops);
+diff --git providers/nes/nes_umain.c providers/nes/nes_umain.c
+index 07aa7ddd112a..86f0f5c55db0 100644
+--- providers/nes/nes_umain.c
++++ providers/nes/nes_umain.c
+@@ -63,6 +63,8 @@ static const struct verbs_match_ent hca_table[] = {
+ {},
+ };
+
++static void nes_ufree_context(struct ibv_context *ibctx);
++
+ static const struct verbs_context_ops nes_uctx_ops = {
+ .query_device = nes_uquery_device,
+ .query_port = nes_uquery_port,
+@@ -86,7 +88,9 @@ static const struct verbs_context_ops nes_uctx_ops = {
+ .destroy_ah = nes_udestroy_ah,
+ .attach_mcast = nes_uattach_mcast,
+ .detach_mcast = nes_udetach_mcast,
+- .async_event = nes_async_event
++ .async_event = nes_async_event,
++ .free_context = nes_ufree_context,
++
+ };
+
+ static const struct verbs_context_ops nes_uctx_no_db_ops = {
+@@ -215,6 +219,5 @@ static const struct verbs_device_ops nes_udev_ops = {
+ .alloc_device = nes_device_alloc,
+ .uninit_device = nes_uninit_device,
+ .alloc_context = nes_ualloc_context,
+- .free_context = nes_ufree_context,
+ };
+ PROVIDER_DRIVER(nes, nes_udev_ops);
diff --git a/post_download.sh b/post_download.sh
index 63051c8..570c411 100644
--- a/post_download.sh
+++ b/post_download.sh
@@ -11,7 +11,7 @@ sed -i -e 's/^%define with_static .*$/%define with_static 0/' rdma-core.spec
# tarball and patch the spec file
bash gen-pandoc.sh || exit 1
-EXTRA_SOURCES="Source2: post_download.sh\nSource3: prebuilt-pandoc.tgz\nSource4: rdma-core-rpmlintrc\nSource5: gen-pandoc.sh\nSource6: get_build.py"
+EXTRA_SOURCES="Source2: post_download.sh\nSource3: prebuilt-pandoc.tgz\nSource4: rdma-core-rpmlintrc\nSource5: gen-pandoc.sh"
PANDOC_SETUP="#Extract prebuilt pandoc file in the buildlib directory\n(cd buildlib && tar xf %{S:3})"
sed -i -e '/Source1:/a '"$EXTRA_SOURCES" rdma-core.spec
sed -i -e '/^BuildRequires: pandoc/d' rdma-core.spec
diff --git a/prebuilt-pandoc.tgz b/prebuilt-pandoc.tgz
index 70824db..89c3591 100644
--- a/prebuilt-pandoc.tgz
+++ b/prebuilt-pandoc.tgz
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
-oid sha256:93f89499199ec4e15b83516c8c9205f1ed5cd9839a3c8c5275cbe595e787641d
-size 64166
+oid sha256:7beb72ac27fa9d15ada7686e2057b39f5ac6eff5d92771c295d43ee11092adad
+size 69578
diff --git a/rdma-core-27.1.0.ba66d565a860.tar.gz b/rdma-core-27.1.0.ba66d565a860.tar.gz
deleted file mode 100644
index 9aa356e..0000000
--- a/rdma-core-27.1.0.ba66d565a860.tar.gz
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:f496b580ec7182b1eab786f5d3ebc497f8cd6a3bfa89297866643a2fc46be6aa
-size 1653206
diff --git a/rdma-core-30.0.0.0f4dd71d38a0.tar.gz b/rdma-core-30.0.0.0f4dd71d38a0.tar.gz
new file mode 100644
index 0000000..3be8089
--- /dev/null
+++ b/rdma-core-30.0.0.0f4dd71d38a0.tar.gz
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:3a93639f45244c8e5d17224af0769b0b49e2ccd32cc871fbb7943c57902c2248
+size 1529577
diff --git a/rdma-core.changes b/rdma-core.changes
index 7dda339..5456c18 100644
--- a/rdma-core.changes
+++ b/rdma-core.changes
@@ -1,3 +1,11 @@
+-------------------------------------------------------------------
+Fri Jul 24 08:47:47 UTC 2020 - Nicolas Morey-Chaisemartin
+
+- Update to v30.0
+ - No release notes available
+- Add cxgb3-nes-fix-declaration-of-free_context.patch to fix support
+ of older providers with newer rdma-core internal ABI
+
-------------------------------------------------------------------
Tue Apr 14 11:52:18 UTC 2020 - Nicolas Morey-Chaisemartin
diff --git a/rdma-core.spec b/rdma-core.spec
index 618332b..40ba87c 100644
--- a/rdma-core.spec
+++ b/rdma-core.spec
@@ -25,9 +25,9 @@
%define with_pyverbs 0
%endif
-%define git_ver .0.ba66d565a860
+%define git_ver .0.0f4dd71d38a0
Name: rdma-core
-Version: 27.1
+Version: 30.0
Release: 0
Summary: RDMA core userspace libraries and daemons
License: GPL-2.0-only OR BSD-2-Clause
@@ -64,11 +64,11 @@ Source2: post_download.sh
Source3: prebuilt-pandoc.tgz
Source4: rdma-core-rpmlintrc
Source5: gen-pandoc.sh
-Source6: get_build.py
Patch0: Revert-libnes-Remove-libnes-from-rdma-core.patch
Patch1: Revert-libcxgb3-Remove-libcxgb3-from-rdma-core.patch
Patch2: Revert-Update-kernel-headers.patch
Patch3: disable-rdma-interface-renaming.patch
+Patch4: cxgb3-nes-fix-declaration-of-free_context.patch
BuildRequires: binutils
BuildRequires: cmake >= 2.8.11
BuildRequires: gcc
@@ -137,7 +137,7 @@ BuildRequires: ninja
%else
# Fallback to make otherwise
BuildRequires: make
-%define make_jobs make -v %{?_smp_mflags}
+%define make_jobs make VERBOSE=1 %{?_smp_mflags}
%define cmake_install DESTDIR=%{buildroot} make install
%endif
@@ -210,8 +210,7 @@ Requires: %{efa_lname} = %{version}-%{release}
Requires: %{mlx4_lname} = %{version}-%{release}
Requires: %{mlx5_lname} = %{version}-%{release}
%endif
-# Recommended packages for rxe_cfg
-Recommends: ethtool
+# Recommended packages for rxe
Recommends: iproute2
%description -n libibverbs
@@ -414,6 +413,7 @@ easy, object-oriented access to IB verbs.
%patch1
%patch2
%patch3
+%patch4
%build
@@ -672,9 +672,7 @@ rm -rf %{buildroot}/%{_sbindir}/srp_daemon.sh
%doc %{_docdir}/%{name}-%{version}/libibverbs.md
%doc %{_docdir}/%{name}-%{version}/rxe.md
%doc %{_docdir}/%{name}-%{version}/tag_matching.md
-%{_bindir}/rxe_cfg
%{_mandir}/man7/rxe*
-%{_mandir}/man8/rxe*
%files -n libibnetdisc%{ibnetdisc_major}
%defattr(-, root, root)
@@ -712,10 +710,10 @@ rm -rf %{buildroot}/%{_sbindir}/srp_daemon.sh
%config(noreplace) %{_sysconfdir}/rdma/ibacm_opts.cfg
%{_bindir}/ib_acme
%{_sbindir}/ibacm
-%{_mandir}/man1/ibacm.*
%{_mandir}/man1/ib_acme.*
%{_mandir}/man7/ibacm.*
%{_mandir}/man7/ibacm_prov.*
+%{_mandir}/man8/ibacm.*
%{_unitdir}/ibacm.service
%{_unitdir}/ibacm.socket
%dir %{_libdir}/ibacm
@@ -862,10 +860,10 @@ rm -rf %{buildroot}/%{_sbindir}/srp_daemon.sh
%{_sbindir}/srp_daemon
%{_sbindir}/run_srp_daemon
%{_sbindir}/rcsrp_daemon
-%{_mandir}/man1/ibsrpdm.1*
-%{_mandir}/man1/srp_daemon.1*
%{_mandir}/man5/srp_daemon.service.5*
%{_mandir}/man5/srp_daemon_port@.service.5*
+%{_mandir}/man8/ibsrpdm.8*
+%{_mandir}/man8/srp_daemon.8*
%doc %{_docdir}/%{name}-%{version}/ibsrpdm.md
%files -n rdma-ndd