Re: x86_64 restore_image declaration needs asmlinkage?

Nigel Cunningham
2006-06-28T12:00:32Z

[-- Attachment #1: Type: text/plain, Size: 1320 bytes --]

Hi.

On Wednesday 28 June 2006 21:53, Rafael J. Wysocki wrote:
> 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.

Right. But what about restore_image lacking the asmlinkage? I'm also wondering
if that does matter.

Regards,

Nigel
--
Nigel, Michelle and Alisdair Cunningham
5 Mitchell Street
Cobden 3266
Victoria, Australia

[-- Attachment #2: Type: application/pgp-signature, Size: 189 bytes --]