[PATCH] mark __init code noinline to stop erroneous inclusions

From: Ben Dooks
Date: Mon Oct 17 2005 - 16:38:09 EST


Make __init also have the noinline attribute attached
to it, to stop code marked as __init being included
into non __init code. This not only wastes space, but
also makes it impossible to track down any calls from
non-init code as differing compilers and optimisations
make differing decisions on what to inline.

Signed-off-by: Ben Dooks <ben-linux@xxxxxxxxx>
--- linux-2.6.14-rc4-git4-bjd2/include/linux/init.h 2005-09-01 21:02:39.000000000 +0100
+++ linux-2.6.14-rc4-git4-bjd3/include/linux/init.h 2005-10-17 22:26:48.000000000 +0100
@@ -41,7 +41,7 @@

/* These are for everybody (although not all archs will actually
discard it in modules) */
-#define __init __attribute__ ((__section__ (".init.text")))
+#define __init noinline __attribute__ ((__section__ (".init.text")))
#define __initdata __attribute__ ((__section__ (".init.data")))
#define __exitdata __attribute__ ((__section__(".exit.data")))
#define __exit_call __attribute_used__ __attribute__ ((__section__ (".exitcall.exit")))