x86_64 restore_image declaration needs asmlinkage?

From: Nigel Cunningham
Date: Wed Jun 28 2006 - 06:47:14 EST


Hi.

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?

Regards,

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

Attachment: pgp00000.pgp
Description: PGP signature