vfio: do not unregister callback in secondary process
authorAnatoly Burakov <anatoly.burakov@intel.com>
Thu, 10 Jan 2019 16:33:39 +0000 (16:33 +0000)
committerThomas Monjalon <thomas@monjalon.net>
Mon, 14 Jan 2019 14:31:51 +0000 (15:31 +0100)
Callbacks are only registered in the primary, so do not attempt to
unregister callbacks in secondary processes.

Fixes: 43e463137154 ("vfio: support memory event callbacks")
Cc: stable@dpdk.org
Signed-off-by: Anatoly Burakov <anatoly.burakov@intel.com>
lib/librte_eal/linuxapp/eal/eal_vfio.c

index 0516b15..72cc651 100644 (file)
@@ -857,7 +857,8 @@ rte_vfio_release_device(const char *sysfs_base, const char *dev_addr,
        /* if there are no active device groups, unregister the callback to
         * avoid spurious attempts to map/unmap memory from VFIO.
         */
-       if (vfio_cfg == default_vfio_cfg && vfio_cfg->vfio_active_groups == 0)
+       if (vfio_cfg == default_vfio_cfg && vfio_cfg->vfio_active_groups == 0 &&
+                       rte_eal_process_type() != RTE_PROC_SECONDARY)
                rte_mem_event_callback_unregister(VFIO_MEM_EVENT_CLB_NAME,
                                NULL);