diff --git a/.gitignore b/.gitignore
index 335d6a6..9ef3895 100644
--- a/.gitignore
+++ b/.gitignore
@@ -9,3 +9,4 @@
 /rdma-core-28.0.tar.gz
 /rdma-core-29.0.tar.gz
 /rdma-core-30.0.tar.gz
+/rdma-core-31.0.tar.gz
diff --git a/rdma-core.spec b/rdma-core.spec
index 82c2649..c8b3113 100644
--- a/rdma-core.spec
+++ b/rdma-core.spec
@@ -1,6 +1,6 @@
 Name: rdma-core
-Version: 30.0
-Release: 6%{?dist}
+Version: 31.0
+Release: 1%{?dist}
 Summary: RDMA core userspace libraries and daemons
 
 # Almost everything is licensed under the OFA dual GPLv2, 2 Clause BSD license
@@ -67,8 +67,8 @@ Conflicts: infiniband-diags <= 1.6.7
 # Ninja was introduced in FC23
 BuildRequires: ninja-build
 %define CMAKE_FLAGS -GNinja
-%define make_jobs ninja-build -C %{__cmake_builddir} -v %{?_smp_mflags}
-%define cmake_install DESTDIR=%{buildroot} ninja-build -C %{__cmake_builddir} install
+%define make_jobs ninja-build -C %{_vpath_builddir} -v %{?_smp_mflags}
+%define cmake_install DESTDIR=%{buildroot} ninja-build -C %{_vpath_builddir} install
 %else
 # Fallback to make otherwise
 BuildRequires: make
@@ -661,6 +661,9 @@ fi
 %endif
 
 %changelog
+* Wed Aug 19 2020 Honggang Li <honli@redhat.com> - 31.0-1
+- Rebase to upstream release v31.0
+
 * Thu Jul 30 2020 Honggang Li <honli@redhat.com> - 30.0-6
 - Update cmake options
 
diff --git a/sources b/sources
index 8e5b0c6..a6576cd 100644
--- a/sources
+++ b/sources
@@ -1 +1 @@
-SHA512 (rdma-core-30.0.tar.gz) = 8355792c3b69f2c07e511097b67bd3493acfceb771e68f8166814059dd62fcc05876a5f46172082385794b75f47be24134dbf377c787974d1fc67dc096023c8b
+SHA512 (rdma-core-31.0.tar.gz) = c9c05f586c10e666fe36176849de3dc614151179758200a48ddd8679e67c1d99203930afc64056b8d41a6fb6f2b583991f91e498c20869bec56ab65e654c9e3d