Re: [PATCH] bootstd: Fix relative path use in extlinux bootmeth

2023-06-14 Thread Tom Rini
On Fri, Jun 09, 2023 at 02:59:01PM +, Jonas Karlman wrote:

> 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 
> Reviewed-by: Simon Glass 

Applied to u-boot/master, thanks!

-- 
Tom


signature.asc
Description: PGP signature


Re: [PATCH] bootstd: Fix relative path use in extlinux bootmeth

2023-06-12 Thread Simon Glass
Hi Jonas,

On Fri, 9 Jun 2023 at 15:59, Jonas Karlman  wrote:
>
> 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 
> ---
>  boot/bootmeth_extlinux.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)

Reviewed-by: Simon Glass 

Thank you for the fix.

I'd like to find a way to test some of this internal code, but so far
have not had any easy ideas.

>
> 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(, , extlinux_getfile, , true,
> -   bflow->subdir, false);
> +   bflow->fname, false);
> if (ret)
> return log_msg_ret("ctx", -EINVAL);
>
> --
> 2.40.1
>

Regards,
Simon


[PATCH] bootstd: Fix relative path use in extlinux bootmeth

2023-06-09 Thread Jonas Karlman
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 
---
 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(, , extlinux_getfile, , true,
-   bflow->subdir, false);
+   bflow->fname, false);
if (ret)
return log_msg_ret("ctx", -EINVAL);
 
-- 
2.40.1