On Mon, 4 Apr 2005, Ralf Baechle wrote: > On Fri, Apr 01, 2005 at 10:28:04AM +0200, Ulrich Eckhardt wrote: > > I just stumbled over arch/mips/au1000/common/prom.c, which contains a function > > defined like this: > > char* prom_getcmdline(void); > > EXPORT_SYMBOL(prom_getcmdline); > > while there are implementations that define the function as > > char* __init prom_getcmdline(); > > Further, there are several declarations throughout sourcefiles and in > > include/asm-mips/mips-boards/prom.h and include/asm-mips/sgialib.h. Just grep > > for it and you'll see the mess. > > > > If anyone tells me which one is right and cares to explain why I hereby > > volunteer to create a patch. ;) > > __init was introduced long after prom_getcmdline() and not all definitions > ever got updated. For prototypes where __init doesn't server any useful > purpose other than for the human reader so we generally don't use it. IIRC, there are architectures (alpha?) where __init does matter for prototypes because a different jump type is used depending on the sections of the caller and callee. Gr{oetje,eeting}s, Geert -- Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- geert@xxxxxxxxxxxxxx In personal conversations with technical people, I call myself a hacker. But when I'm talking to journalists I just say "programmer" or something like that. -- Linus Torvalds