diff --git a/SOURCES/openvswitch-2.16.0.patch b/SOURCES/openvswitch-2.16.0.patch
index ad89c95..768c771 100644
--- a/SOURCES/openvswitch-2.16.0.patch
+++ b/SOURCES/openvswitch-2.16.0.patch
@@ -1,14 +1,20 @@
 diff --git a/.ci/linux-prepare.sh b/.ci/linux-prepare.sh
-index c55125cf78..360c0a68ea 100755
+index c55125cf78..c0b7473eda 100755
 --- a/.ci/linux-prepare.sh
 +++ b/.ci/linux-prepare.sh
-@@ -21,8 +21,7 @@ make -j4 HAVE_LLVM= HAVE_SQLITE= install
+@@ -20,9 +20,13 @@ cd sparse
+ make -j4 HAVE_LLVM= HAVE_SQLITE= install
  cd ..
  
++# Installing wheel separately because it may be needed to build some
++# of the packages during dependency backtracking and pip >= 22.0 will
++# abort backtracking on build failures:
++#     https://github.com/pypa/pip/issues/10655
++pip3 install --disable-pip-version-check --user wheel
  pip3 install --disable-pip-version-check --user \
 -    flake8 hacking sphinx pyOpenSSL wheel setuptools
 -pip3 install --user --upgrade docutils
-+    flake8 hacking sphinx wheel setuptools
++    flake8 'hacking>=3.0' sphinx setuptools
  pip3 install --user  'meson==0.47.1'
  
  if [ "$M32" ]; then
@@ -1470,7 +1476,7 @@ index 60dd138914..97bd21be4a 100644
      }
  
 diff --git a/lib/odp-util.c b/lib/odp-util.c
-index 7729a90608..fbdfc7ad83 100644
+index 7729a90608..65f028ba02 100644
 --- a/lib/odp-util.c
 +++ b/lib/odp-util.c
 @@ -2941,7 +2941,7 @@ odp_nsh_key_from_attr__(const struct nlattr *attr, bool is_mask,
@@ -1482,6 +1488,15 @@ index 7729a90608..fbdfc7ad83 100644
                  const struct ovs_nsh_key_md1 *md1_mask = md1 + 1;
                  memcpy(nsh_mask->context, md1_mask->context,
                         sizeof(*md1_mask));
+@@ -3212,7 +3212,7 @@ tun_key_to_attr(struct ofpbuf *a, const struct flow_tnl *tun_key,
+ 
+         opts.flags = tun_key->gtpu_flags;
+         opts.msgtype = tun_key->gtpu_msgtype;
+-        nl_msg_put_unspec(a, OVS_TUNNEL_KEY_ATTR_GENEVE_OPTS,
++        nl_msg_put_unspec(a, OVS_TUNNEL_KEY_ATTR_GTPU_OPTS,
+                           &opts, sizeof(opts));
+     }
+     nl_msg_end_nested(a, tun_key_ofs);
 @@ -4618,7 +4618,7 @@ odp_flow_format(const struct nlattr *key, size_t key_len,
              }
              ds_put_char(ds, ')');
@@ -2211,7 +2226,7 @@ index c5a80ee39f..f66ed3472c 100644
  void ovsdb_datum_remove_unsafe(struct ovsdb_datum *, size_t idx,
                                 const struct ovsdb_type *);
 diff --git a/lib/ovsdb-idl.c b/lib/ovsdb-idl.c
-index 2198c69c60..42d249212d 100644
+index 2198c69c60..c591c76353 100644
 --- a/lib/ovsdb-idl.c
 +++ b/lib/ovsdb-idl.c
 @@ -1898,8 +1898,7 @@ ovsdb_idl_index_destroy_row(const struct ovsdb_idl_row *row_)
@@ -2299,6 +2314,17 @@ index 2198c69c60..42d249212d 100644
          ovsdb_idl_destroy(loop->idl);
      }
  }
+@@ -4121,8 +4121,8 @@ ovsdb_idl_loop_run(struct ovsdb_idl_loop *loop)
+ {
+     ovsdb_idl_run(loop->idl);
+ 
+-    /* See if we can commit the loop->committing_txn. */
+-    if (loop->committing_txn) {
++    /* See if the 'committing_txn' succeeded in the meantime. */
++    if (loop->committing_txn && loop->committing_txn->status == TXN_SUCCESS) {
+         ovsdb_idl_try_commit_loop_txn(loop, NULL);
+     }
+ 
 diff --git a/lib/pcap-file.c b/lib/pcap-file.c
 index b30a11c24b..41835f6f4d 100644
 --- a/lib/pcap-file.c
diff --git a/SPECS/openvswitch2.16.spec b/SPECS/openvswitch2.16.spec
index 9c176ce..cedf2fa 100644
--- a/SPECS/openvswitch2.16.spec
+++ b/SPECS/openvswitch2.16.spec
@@ -57,7 +57,7 @@ Summary: Open vSwitch
 Group: System Environment/Daemons daemon/database/utilities
 URL: http://www.openvswitch.org/
 Version: 2.16.0
-Release: 47%{?dist}
+Release: 48%{?dist}
 
 # Nearly all of openvswitch is ASL 2.0.  The bugtool is LGPLv2+, and the
 # lib/sflow*.[ch] files are SISSL
@@ -699,6 +699,14 @@ exit 0
 %endif
 
 %changelog
+* Mon Feb 07 2022 Michael Santana <msantana@redhat.com> - 2.16.0-48
+- Merging upstream branch-2.16 [RH git: 9d51785142]
+    Commit list:
+    1ec567a752 ci: Install wheel before installing any other python packages.
+    031a99cef0 odp-util: Fix tunnel key attr for GTP-U.
+    558699c73c ovsdb-idl: Only process successful txn in ovsdb_idl_loop_run.
+
+
 * Wed Feb 02 2022 Open vSwitch CI <ovs-ci@redhat.com> - 2.16.0-47
 - Merging upstream branch-2.16 [RH git: 6e6f66ffd0]
     Commit list: