From: James Morris The avc_init function is only called during kernel init, so it can be marked with __init. --- security/selinux/avc.c | 2 +- security/selinux/include/avc.h | 3 ++- 2 files changed, 3 insertions(+), 2 deletions(-) diff -puN security/selinux/avc.c~selinux-mark-avc_init-init security/selinux/avc.c --- 25/security/selinux/avc.c~selinux-mark-avc_init-init 2004-02-13 11:09:22.000000000 -0800 +++ 25-akpm/security/selinux/avc.c 2004-02-13 11:09:22.000000000 -0800 @@ -166,7 +166,7 @@ void avc_dump_query(u32 ssid, u32 tsid, * * Initialize the access vector cache. */ -void avc_init(void) +void __init avc_init(void) { struct avc_node *new; int i; diff -puN security/selinux/include/avc.h~selinux-mark-avc_init-init security/selinux/include/avc.h --- 25/security/selinux/include/avc.h~selinux-mark-avc_init-init 2004-02-13 11:09:22.000000000 -0800 +++ 25-akpm/security/selinux/include/avc.h 2004-02-13 11:09:22.000000000 -0800 @@ -11,6 +11,7 @@ #include #include #include +#include #include #include "flask.h" #include "av_permissions.h" @@ -121,7 +122,7 @@ void avc_dump_cache(char *tag); * AVC operations */ -void avc_init(void); +void __init avc_init(void); int avc_lookup(u32 ssid, u32 tsid, u16 tclass, u32 requested, struct avc_entry_ref *aeref); _