Casey Schaufler wrote: > > But currently, LSM_HOOK_INIT() macro depends on the address of > > security_hook_heads being known at compile time. If we use an enum > > so that LSM_HOOK_INIT() macro does not need to know absolute address of > > security_hook_heads, it will help us to use that allocator for LSM hooks. > > > > As a result of introducing an enum, security_hook_heads becomes a local > > variable, making it easier to allocate security_hook_heads at run time. > > You loose the type checking in security.c. This is the same > objection I had before to this approach. It's why I objected > to 3dfc9b02864b19f4 and why I didn't adopt the array approach > in the first place. If it's so important that randstruct not > complain about the unnatural cast, revert the patch that > introduced it. I see no net benefit in hiding the symbol over > loosing the typing. You trade a list of typed function > pointers for an enumerated list of values. It doesn't even > make the code look smaller!
I still cannot understand what you are referring by "type checking". Please explain me what the type checking in security/security.c is.