diff --git a/SOURCES/openvswitch-3.2.0.patch b/SOURCES/openvswitch-3.2.0.patch
index 833c56a..67b3665 100644
--- a/SOURCES/openvswitch-3.2.0.patch
+++ b/SOURCES/openvswitch-3.2.0.patch
@@ -3592,7 +3592,7 @@ index 1a54add87f..91ead921e1 100644
          } else {
              unixctl_command_reply_error(conn, error);
 diff --git a/lib/netdev-linux.c b/lib/netdev-linux.c
-index cca3408797..d1ad031f11 100644
+index cca3408797..6560108d16 100644
 --- a/lib/netdev-linux.c
 +++ b/lib/netdev-linux.c
 @@ -2566,16 +2566,12 @@ exit:
@@ -3664,6 +3664,16 @@ index cca3408797..d1ad031f11 100644
          max_rate = current_speed ? current_speed / 8 * 1000000ULL
                                   : NETDEV_DEFAULT_BPS / 8;
      }
+@@ -6577,7 +6588,8 @@ get_stats_via_netlink(const struct netdev *netdev_, struct netdev_stats *stats)
+             struct rtnl_link_stats64 aligned_lstats;
+ 
+             if (!IS_PTR_ALIGNED(lstats)) {
+-                memcpy(&aligned_lstats, lstats, sizeof aligned_lstats);
++                memcpy(&aligned_lstats, (void *) lstats,
++                       sizeof aligned_lstats);
+                 lstats = &aligned_lstats;
+             }
+             netdev_stats_from_rtnl_link_stats64(stats, lstats);
 diff --git a/lib/netdev-native-tnl.c b/lib/netdev-native-tnl.c
 index 715bbab2be..a6de995990 100644
 --- a/lib/netdev-native-tnl.c
@@ -4285,7 +4295,7 @@ index 12245b7649..40abed428e 100644
  void packet_set_udp_port(struct dp_packet *, ovs_be16 src, ovs_be16 dst);
  void packet_set_sctp_port(struct dp_packet *, ovs_be16 src, ovs_be16 dst);
 diff --git a/lib/route-table.c b/lib/route-table.c
-index 9927dcc185..f1fe32714e 100644
+index 9927dcc185..c6cb21394a 100644
 --- a/lib/route-table.c
 +++ b/lib/route-table.c
 @@ -26,6 +26,7 @@
@@ -4305,16 +4315,29 @@ index 9927dcc185..f1fe32714e 100644
  struct route_data {
      /* Copied from struct rtmsg. */
      unsigned char rtm_dst_len;
-@@ -80,7 +83,7 @@ static struct nln_notifier *name_notifier = NULL;
+@@ -80,9 +83,9 @@ static struct nln_notifier *name_notifier = NULL;
  
  static bool route_table_valid = false;
  
 -static int route_table_reset(void);
 +static void route_table_reset(void);
  static void route_table_handle_msg(const struct route_table_msg *);
- static int route_table_parse(struct ofpbuf *, struct route_table_msg *);
+-static int route_table_parse(struct ofpbuf *, struct route_table_msg *);
++static int route_table_parse(struct ofpbuf *, void *change);
  static void route_table_change(const struct route_table_msg *, void *);
-@@ -153,26 +156,22 @@ route_table_wait(void)
+ static void route_map_clear(void);
+ 
+@@ -107,8 +110,7 @@ route_table_init(void)
+     ovs_assert(!route6_notifier);
+ 
+     ovs_router_init();
+-    nln = nln_create(NETLINK_ROUTE, (nln_parse_func *) route_table_parse,
+-                     &rtmsg);
++    nln = nln_create(NETLINK_ROUTE, route_table_parse, &rtmsg);
+ 
+     route_notifier =
+         nln_notifier_create(nln, RTNLGRP_IPV4_ROUTE,
+@@ -153,26 +155,22 @@ route_table_wait(void)
      ovs_mutex_unlock(&route_table_mutex);
  }
  
@@ -4350,7 +4373,7 @@ index 9927dcc185..f1fe32714e 100644
  
      nl_dump_start(&dump, NETLINK_ROUTE, &request);
      ofpbuf_uninit(&request);
-@@ -182,12 +181,43 @@ route_table_reset(void)
+@@ -182,19 +180,51 @@ route_table_reset(void)
          struct route_table_msg msg;
  
          if (route_table_parse(&reply, &msg)) {
@@ -4395,6 +4418,15 @@ index 9927dcc185..f1fe32714e 100644
  }
  
  /* Return RTNLGRP_IPV4_ROUTE or RTNLGRP_IPV6_ROUTE on success, 0 on parse
+  * error. */
+ static int
+-route_table_parse(struct ofpbuf *buf, struct route_table_msg *change)
++route_table_parse(struct ofpbuf *buf, void *change_)
+ {
++    struct route_table_msg *change = change_;
+     bool parsed, ipv4 = false;
+ 
+     static const struct nl_policy policy[] = {
 @@ -203,6 +233,7 @@ route_table_parse(struct ofpbuf *buf, struct route_table_msg *change)
          [RTA_GATEWAY] = { .type = NL_A_U32, .optional = true },
          [RTA_MARK] = { .type = NL_A_U32, .optional = true },
diff --git a/SPECS/openvswitch3.2.spec b/SPECS/openvswitch3.2.spec
index f2eaa50..7cca409 100644
--- a/SPECS/openvswitch3.2.spec
+++ b/SPECS/openvswitch3.2.spec
@@ -57,7 +57,7 @@ Summary: Open vSwitch
 Group: System Environment/Daemons daemon/database/utilities
 URL: http://www.openvswitch.org/
 Version: 3.2.0
-Release: 97%{?dist}
+Release: 98%{?dist}
 
 # Nearly all of openvswitch is ASL 2.0.  The bugtool is LGPLv2+, and the
 # lib/sflow*.[ch] files are SISSL
@@ -763,6 +763,13 @@ exit 0
 %endif
 
 %changelog
+* Wed Aug 14 2024 Open vSwitch CI <ovs-ci@redhat.com> - 3.2.0-98
+- Merging upstream branch-3.2 [RH git: 4d4a155af8]
+    Commit list:
+    3ff343a96b netdev-linux: Fix unaligned access to rpl_rtnl_link_stats64.
+    cd9c2ffcb3 route-table: Fix another UBsan warning about pointer type.
+
+
 * Thu Aug 08 2024 Open vSwitch CI <ovs-ci@redhat.com> - 3.2.0-97
 - Merging upstream branch-3.2 [RH git: ebd0cb3338]
     Commit list: