DPDK patches and discussions
 help / color / mirror / Atom feed
* [dpdk-dev] [PATCH] eal: fix regression of plugins always requiring full path
@ 2015-11-23 12:05 Panu Matilainen
  2015-11-23 15:29 ` Thomas Monjalon
  0 siblings, 1 reply; 2+ messages in thread
From: Panu Matilainen @ 2015-11-23 12:05 UTC (permalink / raw)
  To: dev

The added error checking on plugin initialization in
commit 9f8eb1d9ca0f56d6292db5858c52e6873d0abe51 broke the ability of
loading plugins by their basename from default linker locations.
Only use stat() for directory discovery and leave error handling
to dlopen() to restore former behavior.

Fixes: 9f8eb1d9ca0f ("eal: support driver loading from directory")
Signed-off-by: Panu Matilainen <pmatilai@redhat.com>
---
 lib/librte_eal/common/eal_common_options.c | 12 ++----------
 1 file changed, 2 insertions(+), 10 deletions(-)

diff --git a/lib/librte_eal/common/eal_common_options.c b/lib/librte_eal/common/eal_common_options.c
index e51fa12..29942ea 100644
--- a/lib/librte_eal/common/eal_common_options.c
+++ b/lib/librte_eal/common/eal_common_options.c
@@ -218,22 +218,15 @@ eal_plugins_init(void)
 
 	TAILQ_FOREACH(solib, &solib_list, next) {
 		struct stat sb;
-		if (stat(solib->name, &sb) == -1) {
-			RTE_LOG(ERR, EAL, "Invalid plugin specified: %s: %s\n",
-				solib->name, strerror(errno));
-			return -1;
-		}
 
-		switch (sb.st_mode & S_IFMT) {
-		case S_IFDIR:
+		if (stat(solib->name, &sb) == 0 && S_ISDIR(sb.st_mode)) {
 			if (eal_plugindir_init(solib->name) == -1) {
 				RTE_LOG(ERR, EAL,
 					"Cannot init plugin directory %s\n",
 					solib->name);
 				return -1;
 			}
-			break;
-		case S_IFREG:
+		} else {
 			RTE_LOG(DEBUG, EAL, "open shared lib %s\n",
 				solib->name);
 			solib->lib_handle = dlopen(solib->name, RTLD_NOW);
@@ -241,7 +234,6 @@ eal_plugins_init(void)
 				RTE_LOG(ERR, EAL, "%s\n", dlerror());
 				return -1;
 			}
-			break;
 		}
 
 	}
-- 
2.5.0

^ permalink raw reply	[flat|nested] 2+ messages in thread

* Re: [dpdk-dev] [PATCH] eal: fix regression of plugins always requiring full path
  2015-11-23 12:05 [dpdk-dev] [PATCH] eal: fix regression of plugins always requiring full path Panu Matilainen
@ 2015-11-23 15:29 ` Thomas Monjalon
  0 siblings, 0 replies; 2+ messages in thread
From: Thomas Monjalon @ 2015-11-23 15:29 UTC (permalink / raw)
  To: Panu Matilainen; +Cc: dev

2015-11-23 14:05, Panu Matilainen:
> The added error checking on plugin initialization in
> commit 9f8eb1d9ca0f56d6292db5858c52e6873d0abe51 broke the ability of
> loading plugins by their basename from default linker locations.
> Only use stat() for directory discovery and leave error handling
> to dlopen() to restore former behavior.
> 
> Fixes: 9f8eb1d9ca0f ("eal: support driver loading from directory")
> Signed-off-by: Panu Matilainen <pmatilai@redhat.com>

Applied, thanks

^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2015-11-23 15:30 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2015-11-23 12:05 [dpdk-dev] [PATCH] eal: fix regression of plugins always requiring full path Panu Matilainen
2015-11-23 15:29 ` Thomas Monjalon

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).