static void dp_cleanup(void)
{
+#if RHEL_RELEASE_CODE < RHEL_RELEASE_VERSION(8,0)
+ /* On RHEL 7.x kernels we hit a kernel paging error without
+ * this barrier and subsequent hefty delay. A process will
+ * attempt to access openvwitch memory after it has been
+ * unloaded. Further debugging is needed on that but for
+ * now let's not let customer machines panic.
+ */
+ rcu_barrier();
+ msleep(3000);
+#endif
dp_unregister_genl(ARRAY_SIZE(dp_genl_families));
ovs_netdev_exit();
unregister_netdevice_notifier(&ovs_dp_device_notifier);
on_exit 'modprobe -q -r mod'
])
on_exit 'ovs-dpctl del-dp ovs-system'
+ on_exit 'ovs-appctl dpctl/flush-conntrack'
_OVS_VSWITCHD_START([])
dnl Add bridges, ports, etc.
AT_CHECK([ovs-vsctl -- _ADD_BR([br0]) -- $1 m4_if([$2], [], [], [| uuidfilt])], [0], [$2])
for dp in `ovs-dpctl dump-dps`; do
action "Removing datapath: $dp" ovs-dpctl del-dp "$dp"
done
+ action "ovs-appctl dpctl/flush-conntrack"
for vport in `awk '/^vport_/ { print $1 }' /proc/modules`; do
action "Removing $vport module" rmmod $vport