[PATCH] bootstd: Fix relative path use in extlinux bootmeth
    Jonas Karlman 
    jonas at kwiboo.se
       
    Fri Jun  9 16:59:01 CEST 2023
    
    
  
Using relative path in a /boot/extlinux/extlinux.conf file fails to load
linux kernel.
Using a /boot/extlinux/extlinux.conf file:
  LABEL test
    LINUX ../linux/Image
Result in following error:
  Retrieving file: ../linux/Image
  Skipping test for failure retrieving kernel
  Boot failed (err=-14)
However, using sysboot cmd successfully load kernel using same file:
  sysboot mmc 1:1 any ${scriptaddr} /boot/extlinux/extlinux.conf
  Retrieving file: /boot/extlinux/../linux/Image
Fix relative path using bootmeth extlinux by supplying bootfile path
instead of subdir path in the call to pxe_setup_ctx, same as done in the
sysboot command.
Fixes: 31aefaf89a5b ("bootstd: Add an implementation of distro boot")
Signed-off-by: Jonas Karlman <jonas at kwiboo.se>
---
 boot/bootmeth_extlinux.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/boot/bootmeth_extlinux.c b/boot/bootmeth_extlinux.c
index 24be0760229c..6b2b84003836 100644
--- a/boot/bootmeth_extlinux.c
+++ b/boot/bootmeth_extlinux.c
@@ -150,7 +150,7 @@ static int extlinux_boot(struct udevice *dev, struct bootflow *bflow)
 	info.dev = dev;
 	info.bflow = bflow;
 	ret = pxe_setup_ctx(&ctx, &cmdtp, extlinux_getfile, &info, true,
-			    bflow->subdir, false);
+			    bflow->fname, false);
 	if (ret)
 		return log_msg_ret("ctx", -EINVAL);
 
-- 
2.40.1
    
    
More information about the U-Boot
mailing list