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

Re: [Xen-devel] [PATCH] Fix asmlinkage functions



>>> On 19.06.12 at 21:12, Bastian Blank <waldi@xxxxxxxxxx> wrote:
> According to gcc-4.7, "void bla(void)" is incompatible with "asmlinkage
> void bla(void)". As asmlinkage expands to __attribute__((regparm(0))),
> it is correct.
> 
> The patch adds the missing asmlinkage to function declarations affected.
> It is needed for 4.1 and 4.2.

Iirc Keir had already taken steps towards removing all the
(pointless) asmlinkage annotations, so if there are any left I
think we'd rather see them removed than made consistent.

Additionally I doubt there is such a problem in current -unstable,
as the result of Keir's work was to have asmlinkage defined to
nothing on x86 (so I can't see how gcc would be able to diagnose
any inconsistencies). Is Debian (and 4.1) perhaps rather in need
of some backport?

Jan

> Signed-off-by: Bastian Blank <waldi@xxxxxxxxxx>
> 
> ---
> Origin: debian
> Forwarded: no
> Last-Update: 2012-06-15
> 
> --- xen-4.1.3~rc1+hg-20120614.a9c0a89c08f2.orig/xen/arch/x86/i8259.c
> +++ xen-4.1.3~rc1+hg-20120614.a9c0a89c08f2/xen/arch/x86/i8259.c
> @@ -62,7 +62,7 @@
>      IRQ(x,8), IRQ(x,9), IRQ(x,a), IRQ(x,b), \
>      IRQ(x,c), IRQ(x,d), IRQ(x,e), IRQ(x,f)
>  
> -    static void (*interrupt[])(void) = {
> +    static void (*asmlinkage interrupt[])(void) = {
>          IRQLIST_16(0x0), IRQLIST_16(0x1), IRQLIST_16(0x2), IRQLIST_16(0x3),
>          IRQLIST_16(0x4), IRQLIST_16(0x5), IRQLIST_16(0x6), IRQLIST_16(0x7),
>          IRQLIST_16(0x8), IRQLIST_16(0x9), IRQLIST_16(0xa), IRQLIST_16(0xb),
> --- 
> xen-4.1.3~rc1+hg-20120614.a9c0a89c08f2.orig/xen/include/asm-x86/hvm/svm/intr.h
> +++ xen-4.1.3~rc1+hg-20120614.a9c0a89c08f2/xen/include/asm-x86/hvm/svm/intr.h
> @@ -21,6 +21,8 @@
>  #ifndef __ASM_X86_HVM_SVM_INTR_H__
>  #define __ASM_X86_HVM_SVM_INTR_H__
>  
> -void svm_intr_assist(void);
> +#include <asm/config.h>
> +
> +asmlinkage void svm_intr_assist(void);

Furthermore, this ...

>  #endif /* __ASM_X86_HVM_SVM_INTR_H__ */
> --- 
> xen-4.1.3~rc1+hg-20120614.a9c0a89c08f2.orig/xen/include/asm-x86/hvm/vmx/vmx.h
> +++ xen-4.1.3~rc1+hg-20120614.a9c0a89c08f2/xen/include/asm-x86/hvm/vmx/vmx.h
> @@ -63,7 +63,7 @@
>  
>  void vmx_asm_vmexit_handler(struct cpu_user_regs);
>  void vmx_asm_do_vmentry(void);
> -void vmx_intr_assist(void);
> +asmlinkage void vmx_intr_assist(void);

... and this declaration could be dropped altogether (as having
call sites in assembly files only).

Jan

>  void vmx_do_resume(struct vcpu *);
>  void vmx_vlapic_msr_changed(struct vcpu *v);
>  void vmx_realmode(struct cpu_user_regs *regs);
> -- 
> There is a multi-legged creature crawling on your shoulder.
>               -- Spock, "A Taste of Armageddon", stardate 3193.9
> 
> _______________________________________________
> Xen-devel mailing list
> Xen-devel@xxxxxxxxxxxxx 
> http://lists.xen.org/xen-devel 




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