[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Xen-devel] [PATCH OSSTEST 1/2] uboot: use "readlink -f"



On Tue, 2015-03-24 at 11:45 +0000, Wei Liu wrote:
> If the path is not a symlink, readlink by default returns empty string.
> Use "-f" to always return canonical path. This fixes the problem that
> xenpolicy file not getting loaded (because it is not a symlink).
> 
> Also change another spot that calls readlink to get xen binary path in
> case in the future we decide to not use symlink.

Unfortunately this has unexpectedly made things worse. See:
http://www.chiark.greenend.org.uk/~xensrcts/logs/36757/

The issue is that readlink -f returns the full absolute path, so given 
    $ ls /boot/xen*
    xen -> xen-X.Y
    xen-X.Y
Then:
    $ readlink /boot/xen
    xen-X.Y
    $ readlink -f /boot/xen
    /boot/xen-X.Y

This breaks because on these systems /boot is a separate partition, so
from the bootloaders point of view we need to be accessing /xen-X.Y
not /boot/xen-X.Y.

I don't know of an easy way to get the path of a file relative to the
filesystem root which contains it. So I would propose to drop the second
hunk and the second paragraph of the commit message and to make the
first hunk simply "flaskpolicy=$flaskpolicy" (rather than unescaping the
usages, this will make it easier to change in the future).

I think that resubmission will end up being to the new colo at this
point.

> 
> Signed-off-by: Wei Liu <wei.liu2@xxxxxxxxxx>
> ---
>  Osstest/Debian.pm | 4 ++--
>  1 file changed, 2 insertions(+), 2 deletions(-)
> 
> diff --git a/Osstest/Debian.pm b/Osstest/Debian.pm
> index 6784024..b829878 100644
> --- a/Osstest/Debian.pm
> +++ b/Osstest/Debian.pm
> @@ -162,7 +162,7 @@ sub setupboot_uboot ($$$$) {
>           $flask_commands = <<END;
>  
>  setenv flask_policy_addr_r 0x1200000
> -flaskpolicy=`readlink /boot/$flaskpolicy`
> +flaskpolicy=`readlink -f /boot/$flaskpolicy`
>  ext2load scsi 0 \\\${flask_policy_addr_r} \$flaskpolicy
>  fdt mknod /chosen module\@2
>  fdt set /chosen/module\@2 compatible "xen,xsm-policy" "xen,multiboot-module"
> @@ -227,7 +227,7 @@ fi
>  cp -n /boot/boot.xen /boot/boot.xen.bak
>  cp -n /boot/boot.scr.xen /boot/boot.scr.xen.bak
>  
> -xen=`readlink /boot/$xen`
> +xen=`readlink -f /boot/$xen`
>  
>  cat >/boot/boot.xen <<EOF
>  ${load_dtb}



_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxx
http://lists.xen.org/xen-devel


 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.