Re: x86_64 restore_image declaration needs asmlinkage?

From: Rafael J. Wysocki
Date: Wed Jun 28 2006 - 07:51:37 EST


Hi,

On Wednesday 28 June 2006 12:48, Nigel Cunningham wrote:
> I received a report of problems with CONFIG_REGPARM and suspending, that led
> me to recheck asm calls and declarations. Not being a guru on these things, I
> want to ask advice from those who know more.
>
> Along the way I noticed that current git has:
>
> extern asmlinkage int swsusp_arch_suspend(void);
> extern asmlinkage int swsusp_arch_resume(void);
>
> This is right for x86, but for x86_64, we actually call a C routine in
> arch/x86_64/kernel/suspend.c, which calls restore_image in
> arch/x86_64/kernel/suspend_asm.S. Restore image is declared in suspend.c as
>
> extern int restore_image(void);
>
> should it be:
>
> extern asmlinkage int restore_image(void);
>
> Having swsusp_arch_resume declared as asmlinkage doesn't matter, does it?

No, it doesn't. It would have mattered on i386 if the function had taken any
arguments. AFAICT, on x86_64 it desn't matter at all.

Greetings,
Rafael
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/