vhost: fix async callback return type
[dpdk.git] / lib / librte_eal / common / eal_common_options.c
index 85d5ba7..a5426e1 100644 (file)
@@ -95,6 +95,7 @@ eal_long_options[] = {
        {OPT_SYSLOG,            1, NULL, OPT_SYSLOG_NUM           },
        {OPT_VDEV,              1, NULL, OPT_VDEV_NUM             },
        {OPT_VFIO_INTR,         1, NULL, OPT_VFIO_INTR_NUM        },
+       {OPT_VFIO_VF_TOKEN,     1, NULL, OPT_VFIO_VF_TOKEN_NUM    },
        {OPT_VMWARE_TSC_MAP,    0, NULL, OPT_VMWARE_TSC_MAP_NUM   },
        {OPT_LEGACY_MEM,        0, NULL, OPT_LEGACY_MEM_NUM       },
        {OPT_SINGLE_FILE_SEGMENTS, 0, NULL, OPT_SINGLE_FILE_SEGMENTS_NUM},
@@ -328,6 +329,8 @@ eal_reset_internal_config(struct internal_config *internal_cfg)
 
        /* if set to NONE, interrupt mode is determined automatically */
        internal_cfg->vfio_intr_mode = RTE_INTR_MODE_NONE;
+       memset(internal_cfg->vfio_vf_token, 0,
+                       sizeof(internal_cfg->vfio_vf_token));
 
 #ifdef RTE_LIBEAL_USE_HPET
        internal_cfg->no_hpet = 0;
@@ -484,8 +487,15 @@ eal_plugins_init(void)
        struct shared_driver *solib = NULL;
        struct stat sb;
 
-       if (*default_solib_dir != '\0' && stat(default_solib_dir, &sb) == 0 &&
-                               S_ISDIR(sb.st_mode))
+       /* If we are not statically linked, add default driver loading
+        * path if it exists as a directory.
+        * (Using dlopen with NOLOAD flag on EAL, will return NULL if the EAL
+        * shared library is not already loaded i.e. it's statically linked.)
+        */
+       if (dlopen("librte_eal.so", RTLD_LAZY | RTLD_NOLOAD) != NULL &&
+                       *default_solib_dir != '\0' &&
+                       stat(default_solib_dir, &sb) == 0 &&
+                       S_ISDIR(sb.st_mode))
                eal_plugin_add(default_solib_dir);
 
        TAILQ_FOREACH(solib, &solib_list, next) {