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

Re: [Xen-devel] [PATCH v3 6/6] xen: arm: Correctly use GLOBAL/ENTRY in head.S, avoid .global



Hi Ian,

On 07/21/2014 02:00 PM, Ian Campbell wrote:
> Use ENTRY() for function entry points since it ensures correct
> alignment where GLOBAL() doesn't. The exception is the initial start
> label which must be at offset 0, so just use GLOBAL() to avoid the
> possibility of realignment.
> 
> Since everything happens to already be aligned there should be no
> difference to the actual binary. objdump agrees.
> 
> Signed-off-by: Ian Campbell <ian.campbell@xxxxxxxxxx>
Acked-by: Julien Grall <julien.grall@xxxxxxxxxx>

Regards,

> ---
> v3: New patch
> ---
>  xen/arch/arm/arm32/head.S |    8 +++-----
>  xen/arch/arm/arm64/head.S |    8 +++-----
>  2 files changed, 6 insertions(+), 10 deletions(-)
> 
> diff --git a/xen/arch/arm/arm32/head.S b/xen/arch/arm/arm32/head.S
> index 14b172f..6573a42 100644
> --- a/xen/arch/arm/arm32/head.S
> +++ b/xen/arch/arm/arm32/head.S
> @@ -76,8 +76,7 @@
>           * It should be linked at XEN_VIRT_START, and loaded at any
>           * 4K-aligned address.  All of text+data+bss must fit in 2MB,
>           * or the initial pagetable code below will need adjustment. */
> -        .global start
> -start:
> +GLOBAL(start)
>          /* zImage magic header, see:
>           * 
> http://www.simtec.co.uk/products/SWLINUX/files/booting_article.html#d0e309
>           */
> @@ -583,16 +582,15 @@ hex:    .ascii "0123456789abcdef"
>  
>  #else  /* CONFIG_EARLY_PRINTK */
>  
> +ENTRY(early_puts)
>  init_uart:
> -.global early_puts
> -early_puts:
>  puts:
>  putn:   mov   pc, lr
>  
>  #endif /* !CONFIG_EARLY_PRINTK */
>  
>  /* This provides a C-API version of __lookup_processor_type */
> -GLOBAL(lookup_processor_type)
> +ENTRY(lookup_processor_type)
>          stmfd sp!, {r4, r10, lr}
>          mov   r10, #0                   /* r10 := offset between virt&phys */
>          bl    __lookup_processor_type
> diff --git a/xen/arch/arm/arm64/head.S b/xen/arch/arm/arm64/head.S
> index 9497ca1..99cc6e0 100644
> --- a/xen/arch/arm/arm64/head.S
> +++ b/xen/arch/arm/arm64/head.S
> @@ -100,8 +100,7 @@
>           * or the initial pagetable code below will need adjustment.
>           */
>  
> -        .global start
> -start:
> +GLOBAL(start)
>          /*
>           * DO NOT MODIFY. Image header expected by Linux boot-loaders.
>           */
> @@ -604,9 +603,8 @@ hex:    .ascii "0123456789abcdef"
>  
>  #else  /* CONFIG_EARLY_PRINTK */
>  
> +ENTRY(early_puts)
>  init_uart:
> -.global early_puts
> -early_puts:
>  puts:
>  putn:   ret
>  
> @@ -615,7 +613,7 @@ putn:   ret
>  /* This provides a C-API version of __lookup_processor_type
>   * TODO: For now, the implementation return NULL every time
>   */
> -GLOBAL(lookup_processor_type)
> +ENTRY(lookup_processor_type)
>          mov  x0, #0
>          ret
>  
> 


-- 
Julien Grall

_______________________________________________
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®.