Re: x86_64 restore_image declaration needs asmlinkage?

Rafael J. Wysocki
2006-06-28T11:53:15Z

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