diff options
Diffstat (limited to 'security/security.c')
-rw-r--r-- | security/security.c | 23 |
1 files changed, 13 insertions, 10 deletions
diff --git a/security/security.c b/security/security.c index f493db0bf62a..250ee2d76406 100644 --- a/security/security.c +++ b/security/security.c | |||
@@ -35,7 +35,7 @@ | |||
35 | #define LSM_COUNT (__end_lsm_info - __start_lsm_info) | 35 | #define LSM_COUNT (__end_lsm_info - __start_lsm_info) |
36 | 36 | ||
37 | struct security_hook_heads security_hook_heads __lsm_ro_after_init; | 37 | struct security_hook_heads security_hook_heads __lsm_ro_after_init; |
38 | static ATOMIC_NOTIFIER_HEAD(lsm_notifier_chain); | 38 | static BLOCKING_NOTIFIER_HEAD(blocking_lsm_notifier_chain); |
39 | 39 | ||
40 | static struct kmem_cache *lsm_file_cache; | 40 | static struct kmem_cache *lsm_file_cache; |
41 | static struct kmem_cache *lsm_inode_cache; | 41 | static struct kmem_cache *lsm_inode_cache; |
@@ -426,23 +426,26 @@ void __init security_add_hooks(struct security_hook_list *hooks, int count, | |||
426 | panic("%s - Cannot get early memory.\n", __func__); | 426 | panic("%s - Cannot get early memory.\n", __func__); |
427 | } | 427 | } |
428 | 428 | ||
429 | int call_lsm_notifier(enum lsm_event event, void *data) | 429 | int call_blocking_lsm_notifier(enum lsm_event event, void *data) |
430 | { | 430 | { |
431 | return atomic_notifier_call_chain(&lsm_notifier_chain, event, data); | 431 | return blocking_notifier_call_chain(&blocking_lsm_notifier_chain, |
432 | event, data); | ||
432 | } | 433 | } |
433 | EXPORT_SYMBOL(call_lsm_notifier); | 434 | EXPORT_SYMBOL(call_blocking_lsm_notifier); |
434 | 435 | ||
435 | int register_lsm_notifier(struct notifier_block *nb) | 436 | int register_blocking_lsm_notifier(struct notifier_block *nb) |
436 | { | 437 | { |
437 | return atomic_notifier_chain_register(&lsm_notifier_chain, nb); | 438 | return blocking_notifier_chain_register(&blocking_lsm_notifier_chain, |
439 | nb); | ||
438 | } | 440 | } |
439 | EXPORT_SYMBOL(register_lsm_notifier); | 441 | EXPORT_SYMBOL(register_blocking_lsm_notifier); |
440 | 442 | ||
441 | int unregister_lsm_notifier(struct notifier_block *nb) | 443 | int unregister_blocking_lsm_notifier(struct notifier_block *nb) |
442 | { | 444 | { |
443 | return atomic_notifier_chain_unregister(&lsm_notifier_chain, nb); | 445 | return blocking_notifier_chain_unregister(&blocking_lsm_notifier_chain, |
446 | nb); | ||
444 | } | 447 | } |
445 | EXPORT_SYMBOL(unregister_lsm_notifier); | 448 | EXPORT_SYMBOL(unregister_blocking_lsm_notifier); |
446 | 449 | ||
447 | /** | 450 | /** |
448 | * lsm_cred_alloc - allocate a composite cred blob | 451 | * lsm_cred_alloc - allocate a composite cred blob |