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