[PATCH] blspec: Fix once/default booting

Sascha Hauer s.hauer at pengutronix.de
Fri Oct 18 05:40:35 EDT 2013


The default/once files contain the full path to the entries, not
only the filename. This fixes booting the once and default entries.

Signed-off-by: Sascha Hauer <s.hauer at pengutronix.de>
---
 common/blspec.c | 8 +++++---
 1 file changed, 5 insertions(+), 3 deletions(-)

diff --git a/common/blspec.c b/common/blspec.c
index f306ada..a564602 100644
--- a/common/blspec.c
+++ b/common/blspec.c
@@ -147,7 +147,7 @@ static int blspec_scan_directory(struct blspec *blspec, const char *root,
 	char *abspath;
 	int ret, found = 0;
 	const char *dirname = "loader/entries";
-	char *entry_default = NULL, *entry_once = NULL;
+	char *entry_default = NULL, *entry_once = NULL, *name;
 
 	pr_debug("%s: %s %s\n", __func__, root, dirname);
 
@@ -213,10 +213,12 @@ static int blspec_scan_directory(struct blspec *blspec, const char *root,
 		entry->configpath = configname;
 		entry->cdev = cdev;
 
-		if (entry_default && !strcmp(d->d_name, entry_default))
+		name = asprintf("%s/%s", dirname, d->d_name);
+		if (entry_default && !strcmp(name, entry_default))
 			entry->boot_default = true;
-		if (entry_once && !strcmp(d->d_name, entry_once))
+		if (entry_once && !strcmp(name, entry_once))
 			entry->boot_once = true;
+		free(name);
 
 		devname = xstrdup(dev_name(entry->cdev->dev));
 		if (entry->cdev->dev->parent)
-- 
1.8.4.rc3




More information about the barebox mailing list