Message ID | 20161116004612.79315-3-diproiettod@vmware.com |
---|---|
State | Superseded |
Headers | show |
diff --git a/lib/dpif-netdev.c b/lib/dpif-netdev.c index c19d3e8..7b67b42 100644 --- a/lib/dpif-netdev.c +++ b/lib/dpif-netdev.c @@ -3350,8 +3350,10 @@ dp_netdev_del_pmd(struct dp_netdev *dp, struct dp_netdev_pmd_thread *pmd) /* NON_PMD_CORE_ID doesn't have a thread, so we don't have to synchronize, * but extra cleanup is necessary */ if (pmd->core_id == NON_PMD_CORE_ID) { + ovs_mutex_lock(&dp->non_pmd_mutex); emc_cache_uninit(&pmd->flow_cache); pmd_free_cached_ports(pmd); + ovs_mutex_unlock(&dp->non_pmd_mutex); } else { latch_set(&pmd->exit_latch); dp_netdev_reload_pmd__(pmd);
As documented in dp_netdev_pmd_thread, we must take non_pmd_mutex to access the tx port caches for the non pmd thread. Found by inspection. Signed-off-by: Daniele Di Proietto <diproiettod@vmware.com> --- lib/dpif-netdev.c | 2 ++ 1 file changed, 2 insertions(+)