Message ID | 20190531140237.9199-1-janne.karhunen@gmail.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | [1/2] LSM: switch to blocking policy update notifiers | expand |
On Fri, May 31, 2019 at 10:03 AM Janne Karhunen <janne.karhunen@gmail.com> wrote: > Atomic policy updaters are not very useful as they cannot > usually perform the policy updates on their own. Since it > seems that there is no strict need for the atomicity, > switch to the blocking variant. > > Signed-off-by: Janne Karhunen <janne.karhunen@gmail.com> > --- > security/security.c | 8 ++++---- > 1 file changed, 4 insertions(+), 4 deletions(-) > > diff --git a/security/security.c b/security/security.c > index 23cbb1a295a3..c5e69ce81521 100644 > --- a/security/security.c > +++ b/security/security.c > @@ -39,7 +39,7 @@ > #define LSM_COUNT (__end_lsm_info - __start_lsm_info) > > struct security_hook_heads security_hook_heads __lsm_ro_after_init; > -static ATOMIC_NOTIFIER_HEAD(lsm_notifier_chain); > +static BLOCKING_NOTIFIER_HEAD(lsm_notifier_chain); > > static struct kmem_cache *lsm_file_cache; > static struct kmem_cache *lsm_inode_cache; > @@ -432,19 +432,19 @@ void __init security_add_hooks(struct security_hook_list *hooks, int count, > > int call_lsm_notifier(enum lsm_event event, void *data) As I mentioned in the other thread, I would like to see "blocking", or similar, added to the lsm_notifier functions with this change. It makes it easier if/when we need to add both atomic and blocking variants, as well as making it much more clear which version is being used (helpful even now with just one variant). For example: call_lsm_notifier() -> call_lsm_blocking_notifier(), register_lsm_notifier() -> register_lsm_blocking_notifier(). > { > - return atomic_notifier_call_chain(&lsm_notifier_chain, event, data); > + return blocking_notifier_call_chain(&lsm_notifier_chain, event, data); > } > EXPORT_SYMBOL(call_lsm_notifier); > > int register_lsm_notifier(struct notifier_block *nb) > { > - return atomic_notifier_chain_register(&lsm_notifier_chain, nb); > + return blocking_notifier_chain_register(&lsm_notifier_chain, nb); > } > EXPORT_SYMBOL(register_lsm_notifier); > > int unregister_lsm_notifier(struct notifier_block *nb) > { > - return atomic_notifier_chain_unregister(&lsm_notifier_chain, nb); > + return blocking_notifier_chain_unregister(&lsm_notifier_chain, nb); > } > EXPORT_SYMBOL(unregister_lsm_notifier); > > -- > 2.17.1 >
diff --git a/security/security.c b/security/security.c index 23cbb1a295a3..c5e69ce81521 100644 --- a/security/security.c +++ b/security/security.c @@ -39,7 +39,7 @@ #define LSM_COUNT (__end_lsm_info - __start_lsm_info) struct security_hook_heads security_hook_heads __lsm_ro_after_init; -static ATOMIC_NOTIFIER_HEAD(lsm_notifier_chain); +static BLOCKING_NOTIFIER_HEAD(lsm_notifier_chain); static struct kmem_cache *lsm_file_cache; static struct kmem_cache *lsm_inode_cache; @@ -432,19 +432,19 @@ void __init security_add_hooks(struct security_hook_list *hooks, int count, int call_lsm_notifier(enum lsm_event event, void *data) { - return atomic_notifier_call_chain(&lsm_notifier_chain, event, data); + return blocking_notifier_call_chain(&lsm_notifier_chain, event, data); } EXPORT_SYMBOL(call_lsm_notifier); int register_lsm_notifier(struct notifier_block *nb) { - return atomic_notifier_chain_register(&lsm_notifier_chain, nb); + return blocking_notifier_chain_register(&lsm_notifier_chain, nb); } EXPORT_SYMBOL(register_lsm_notifier); int unregister_lsm_notifier(struct notifier_block *nb) { - return atomic_notifier_chain_unregister(&lsm_notifier_chain, nb); + return blocking_notifier_chain_unregister(&lsm_notifier_chain, nb); } EXPORT_SYMBOL(unregister_lsm_notifier);
Atomic policy updaters are not very useful as they cannot usually perform the policy updates on their own. Since it seems that there is no strict need for the atomicity, switch to the blocking variant. Signed-off-by: Janne Karhunen <janne.karhunen@gmail.com> --- security/security.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-)